• 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.

VBA: opslaan op 2 locaties tegelijk en 1 versie beveiligd

Status
Niet open voor verdere reacties.

mike564

Gebruiker
Lid geworden
11 dec 2015
Berichten
83
Goedemiddag!

Ik heb voor het opslaan van 1 bestand op 2 locaties de volgende code:

Code:
Sub Rechthoekafgerondehoeken1_Klikken()
ActiveWorkbook.SaveAs "C:\Users\x\x\x\Test.xlsm", ReadOnlyRecommended:=True
ActiveWorkbook.SaveAs "C:\Users\x\x\x\x\Test.xlsm"
End Sub

Nu werkt dit prima en ben ik er ook wel tevreden over, alleen moet het beter kunnen.
Wat ik namelijk wil is dat het bestand voor de 1e locatie niet kan worden bewerkt en kan worden opgeslagen, dit krijg ik niet voor elkaar met de protect functie.
Stiekem hoop ik hier toch een oplossing voor te vinden

Alvast bedankt!

Mvg,

Mike
 
Dit is helaas geen oplossing, wel weer een handige tool erbij waar ik nog niks over wist , dus in ieder geval bedankt! ;)
 
En als je het bestand voor de eerste locatie opslaat als PDF?
 
Ja dat was het eerste wat ik zelf had geprobeerd, maar dan komt het compleet blanco uit omdat (denk ik) de sheet veel te breed is.
Het betreft een eenvoudige lange termijn planning waar installateurs op een scherm moeten kunnen inzien waar ze de komende weken naartoe moeten en wanneer ze de kost in moeten.
Het is daarom belangrijk dat ze hier niks aan kunnen wijzigen, en omdat de meeste installateurs computerleken zijn is een fout snel gemaakt.
 
je schrijft in je eerste post:
Wat ik namelijk wil is dat het bestand voor de 1e locatie niet kan worden bewerkt en kan worden opgeslagen, dit krijg ik niet voor elkaar met de protect functie.

Je kunt bij protect toch opgeven dat er geen enkel cel geselecteerd mag worden, door alle vinkjes weg te halen?

zie inmiddels toegevoegde bijlage
 

Bijlagen

  • Voor Mike.xlsx
    19,5 KB · Weergaven: 28
Laatst bewerkt:
Ja dat klopt, maar ik ben een "noob" wat betreft VBA en kreeg het hierin dus niet verwerkt.
Wat ik achteraf eigenlijk zou willen: wanneer ik het bestand zou opslaan op een willekeurige locatie (oftewel Ctrl+S), dan zou ditzelfde bestand als kopie en beveiligd tegen bewerken op een vast bepaalde locatie moeten worden opgeslagen, zonder dat ik handmatig de beveiliging er op en af zou moeten zetten.

Ik heb het voorlopig zo "opgelost" omdat mijn VBA skills nog niet echt tot dit niveau zijn ontwikkeld haha:p

Alvast bedankt voor de reacties!
 
Laatst bewerkt:
Mike,

zou dit kunnen werken?

Code:
Sub Rechthoekafgerondehoeken1_Klikken()
'beveilig sheet en zet selectiemogelijkheid uit
     ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
     ActiveSheet.EnableSelection = xlNoSelection
'sla bestand op met uitgezette selectiemogelijkheid op eerste locatie
     ActiveWorkbook.SaveAs "C:\Users\x\x\x\Test.xlsm"
'haal beveiliging weg en maak daardoor selectie weer mogelijk
     ActiveSheet.Unprotect
'sla bestand op op tweede locatie
     ActiveWorkbook.SaveAs "C:\Users\x\x\x\x\Test.xlsm"
End Sub
 
Ja dit werkt perfect! Ik heb alleen achter de tweede locatie ", ReadOnlyRecommended:=False" toegevoegd omdat hij ook hier als "alleen lezen" werd opgeslagen.
Dit gaat tot nu toe ook goed.

Bedankt voor deze nu al geweldige oplossing, je bent een held!

Nu heb ik nog één vraag. Wanneer ik de 2e locatie uit de code haal, en ik dus eigenlijk die locatie variabel wil bepalen, kan dat dan op deze manier:

Code:
Sub 'Door opslaan deze macro uitvoeren, dus niet door een button '
     ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
     ActiveSheet.EnableSelection = xlNoSelection
     ActiveWorkbook.SaveAs "C:\x\x\x\Test.xlsm"
End Sub

Ik wil de code dan laten voeren door het bestand op te slaan, dus door ctrl+s, de save button of opslaan als.
Heb tot nu toe alleen dit kunnen vinden: Workbook_BeforeClose(Cancel As Boolean), maar deze werkt bij het testen niet.
 
Heb je het al geprobeerd?
 
Wat ik tot nu toe heb gedaan is de code zo aangepast:

Code:
Sub MacroOpslaan()
     ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
     ActiveSheet.EnableSelection = xlNoSelection
     ActiveWorkbook.SaveAs "C:\Users\x\x\x\Test.xlsm", ReadOnlyRecommended:=True
     ActiveSheet.Unprotect
     ActiveWorkbook.SaveAs "C:\Users\x\x\x\x\Test.xlsm", ReadOnlyRecommended:=False
End Sub

Deze heb ik toegevoegd als opslaansymbool aan de werkbalk snelle toegang, en dat gaat perfect.

Het probleem wat ik nu alleen heb dat in het alleen lezen bestand deze macro, wanneer er op het symbool in het lint wordt geklikt, dan alsnog gewoon uitgevoerd kan worden.
 
mike,

het zal aan mij liggen, maar ik begrijp niet wat er nu niet goed gaat....

Je geeft zelf eerst aan dat het het perfect werkt!?
En wat is:
wanneer er op het symbool in het lint wordt geklikt
, welk symbool?
 
Sla op met gebruik van een wachtwoord, hier passwoord

Code:
    ActiveSheet.Protect[COLOR="#FF0000"] "passwoord"[/COLOR]
    ActiveSheet.EnableSelection = xlNoSelection
'sla bestand op met uitgezette selectiemogelijkheid op eerste locatie
     ActiveWorkbook.SaveAs "C:\Users\x\x\x\Test.xlsm"
'haal beveiliging weg en maak daardoor selectie weer mogelijk
     ActiveSheet.Unprotect[COLOR="#FF0000"] "passwoord"[/COLOR]
'sla bestand op op tweede locatie
     ActiveWorkbook.SaveAs "C:\Users\x\x\x\x\Test.xlsm"
 
Laatst bewerkt:
Haije,

Ik doelde met "het werkt perfect" op mijn 1e vraag die je volledig naar mijn wensen had opgelost.
Hierdoor kwam ik echter wel tot een nieuwe vraag, of het niet nog makkelijker kon.
Namelijk: wanneer er op de "klassieke" manier wordt opgeslagen, moet de macro worden uitgevoerd. Hierdoor zal dan een deel van de code en ook meteen de knop "Rechthoekafgerondehoeken1_Klikken()" wegvallen
 
En waar heb je die "Workbook_BeforeClose(Cancel As Boolean)" toegepast?
Staat die wel in ThisWorkbook?
 
Hier kwam ik niet uit dus daar ben ik niet meer mee verder gegaan.

Ik wilde liever geen knop in het bestand, waardoor ik de macro heb toegevoegd aan de "werkbalk snelle toegang" (alleen voor dit bestand), hier heb ik een "opslaan als" symbool aan gegeven.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan