• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

bestand van naar veranderen en na gebruik verwijderen

Status
Niet open voor verdere reacties.
Lol, normaal zou ik zeggen, nou dat is eenvoudig zelf op te lossen maar omdat dit bestand een alleen lezen en beveiliging tegen opslaan wijzigingen heeft zal ik het bestand maar even opnieuw plaatsen zodat het workbook_open event goed wordt uitgevoerd
 

Bijlagen

Hai Roeljongeman,

Je oplossing is eenvoudig maar als ik het zo doe dan krijgt de volgende de melding dat het document in gebruik is.

Daarom wil ik dat het document zodra het is geopend gelijk wordt opgeslagen op een andere plek en onder een andere naam.
Dat werk prima.
Nu wil ik alleen nog dat vanuit VBS het document het document wordt verwijderd wat als copy wordt opgeslagen.
anders zal de gebruiker de volgende keer de melding krijgen dat het document al bestaat en of het moet worden overschreven.

Thanks voor het meedenken.

Ronald
 
Hallo Ronald,

Je laatste schijven is niet aan mij gericht, maar kun je de tekst erin iets verduidelijken.
Zoals ik het lees in dat bericht maak je een kopie en die wil je gelijk verwijderen.
Dat zal wel niet kloppen toch?

Overigens kun je de melding waarover je schrijft uitschakelen dmv: 'Application.displayalerts = false' of aan de kopie een formaat meegeven.
 
Hai Harry,
Tuurlijk leg ik graag aan een ervaren vba-er uit wat de bedoeling is.

de situatie is als volgt.
Ik heb een Excel bestand waarin er geroosterd wordt door de roosteraar. Vervolgen wordt er vanuit dat bestand een copy neergezet in een andere dir. Collega's mogen dat bestand inzien en gebruiken maar hebben geen rechten om aan te passen. Normaliter sluit het bestand zichzelf na inactiviteit.
Wat er nu gebeurd is dat meerdere collega's op vrijwel het zelfde moment het rooster willen inzien. ( soms printen ze een dagrooster uit, dit is macro gestuurd. )
Echter als een collega het (copy) bestand opent en een andere collega opent het ook dan krijgt die de melding dat het al in gebruik is.
Deze melding vind ik hinderlijk.
Dus wat heb ik gedaan:
zodra het (copy)bestand wordt geopend door een collega veranderd de naam en slaat hij het op in de eigen dir.
hierdoor kunnen andere collega's ook het bestand zonder meldingen open en inzien en kan de roosteraar op alle momenten een nieuw rooster plaatsen waardoor het copy-rooster wordt verwijderd.
Echter als collega de volgende keer het (copy) rooster opend wil hij het copy overschrijven in de eigen dir. Ik kan dit afvangen maar als het bestand wordt verwijderd door vbs dan kan collega ook niet per abuis het oude rooster open wat in de eigen dir staat terwijl er een nieuwer rooster beschikbaar is.
snap je hem nog?
nu wordt door vbs gemeld dat het document is gesloten en het zou erg fijn zijn als vbs dan ook het bestand uit de persoonlijke dir verwijderd na gebruik. dit kan natuurlijk niet vanuit Excel zelf. Wel vanuit een vbs die door excel wordt gemaakt. ( alleen weet ik niet hoe dit te doen. )

Dank voor je meedenken.

groetjes
Ronald
 
Je kan bij het openen van het origineel de kopieën verwijderen d.m.v.

Code:
Sub VerwijderKopie()
strPath = "C:\temp\"
strFile = Dir(strPath)
  Do While strFile <> ""
     Kill strPath & strFile
     strFile = Dir
  Loop
End Sub

Zoals ik het lees wordt bij het openen van origineel een kopie opgeslagen d.m.v. een code naar een bepaald bestanden-pad.
Als de kopie wordt opgeslagen in "C:\Temp" verwijder je eerst alle bestanden die daar in staan zodat er geen kopie meer kan zijn door bovenstaande code.

Ps. Er kan eventueel een toevoeging gemaakt worden zodat bepaalde bestanden toch behouden kunnen blijven.
Voor je het weet ben je alles kwijt.
 
Laatst bewerkt:
Hai Harry,

op zich een mooie oplossing,
alleen staat ons netwerk niet toe om zelf in c:\temp\ weg te schrijven.
Had wel mooi geweest.
Zal het pad moeten verleggen door bv zelf een map te maken met de naam tijdelijk (H:/tijdelijk) en dan die te gebruiken en te legen.

Groetjes
Ronald
 
Laatst bewerkt:
Ook die map kan je aanmaken op elke Pc.

Code:
CreateObject("shell.application").Namespace("H:").newfolder "Tijdelijk"

Neem die code mee in het origineel.

"C\temp" was ook maar een voorbeeld.
 
Thanks,

dat snapte ik ook en dan laat ik ook testen of de map bestaat en anders maakt hij hem aan.
gaat lukken.

De temp was mooi geweest maar die is afgeschermd, helaas....

Groetjes
Ronald
 
Je hoeft niet controleren of de map bestaat.
Bestaat het niet maakt de code het aan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan