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

gelijktijdig meerdere werkbladen beveiliging opheffen?

Status
Niet open voor verdere reacties.

weinterim

Gebruiker
Lid geworden
1 apr 2010
Berichten
39
Op 08-03-2006 heeft helpasap (Jan) de volgende vraag gesteld?
Hoe kan ik gelijktijdig van meerdere werkbladen de beveiliging opheffen?

Op 09-03-2006 heeft Luc Heyndrickx hierop geantwoord:
tegelijk beveiligen:
Code:
Sub beveiligen()
Dim i As Integer
For i = 1 To Worksheets.Count
Sheets(i).Protect "MijnWachtwoord"
Next
End Sub

tegelijk Opheffen:
Code:
Sub Opheffen()
Dim i As Integer
For i = 1 To Worksheets.Count
Sheets(i).Unprotect "Mijn Wachtwoord"
Next
End Sub

Of indien je het wachtwoord niet in de code wil inbakken:

tegelijk beveiligen:
Code:
Sub beveiligen()
Dim ww As String
Dim i As Integer
ww = InputBox("Geef uw wachtwoord")
For i = 1 To Worksheets.Count
Sheets(i).Protect ww
Next
End Sub

tegelijk Opheffen:
Code:
Sub Opheffen()
Dim ww As String
Dim i As Integer
ww = InputBox("Geef uw wachtwoord")
For i = 1 To Worksheets.Count
Sheets(i).Unprotect ww
Next
End Sub

Dit werkt maar beveiligd alle werkbladen of haalt de beveiliging van alle werkbladen. Ik wil dit echter alleen op bepaalde werkbladen toepassen en niet op alle. Hoe kan ik dit doen?
 
Laatst bewerkt door een moderator:
Ik wil dit echter alleen op bepaalde werkbladen toepassen en niet op alle. Hoe kan ik dit doen?
Als je even goed kijkt, dan ligt het toch voor de hand om dan de for-next-lus weg te halen en dan bv. in te stellen:
Sheets(3).protect "je wachtwoord"

enz.
 
Beste Zapatr

Helaas ben ik niet zo thuis in macro's. Het is mij niet helemaal duidelijk wat jij bedoelt!
Hoe haal de for-next-lus weg en wat voeg je dan toe?

Ik het volgende geprobeerd maar dit werkt niet.
Code:
Sub Opheffen()
Dim ww As String
Dim i As Integer
ww = InputBox("Geef uw wachtwoord")
Sheets(3).Unprotect ww
End Sub

Zou je de macro voluit willen opgeven? Ik wil de beveiliging van werkblad "2. Namen" en werkblad "3. Data" opheffen.
 
Laatst bewerkt door een moderator:
Dit werkt bij mij (Excel 2002):
Code:
Sub opheffen()
Dim ww As String, x As Integer
For x = 2 To 3
ww = InputBox("Geef uw wachtwoord")
Sheets(x).Unprotect ww
Next x
End Sub
Voorwaarde voor de goede werking is uiteraard dat wanneer je deze macro uitvoert beide bladen beveiligd zijn. En dat de bladen waarvan je de naam hebt vermeld inderdaad de bladen 2 en 3 zijn. De macro vraagt 2 keer om een wachtwoord, waarna van beide bladen de beveiliging is opgeheven.
 
Beste Zapatr

Het lukt mij ondanks jouw aanwijzingen niet. Ik vind mij zelf nu wel erg onnozel. Ik kan helaas het bestandje niet toesturen omdat dit te groot is (max. 100,0 KB). Hoe zie je welk nummer een werkblad heeft (Alt F11)? Het nummer is toch niet hetzelfde als de naam van een werkblad? Wat als de werkbladen niet doorlopend genummerd zijn? Wanneer ik straks bijv. 100 werkbladen heb, dan is het wel erg hinderlijk om 100x het wachtwoord in te voeren.
 
Waarom die macro bij jou niet werkt, weet ik niet.
Ik heb vanmiddag op dit forum nog een vraag beantwoord met een macro die bij mij in Excel 2002 wel werkt en bij de ander in Excel 2007 niet.
Om van alle bladen tegelijkertijd de beveiliging op te heffen (als de bladen die beveiligd zijn tenminste hetzelfde wachtwoord hebben), moet de macro maar weinig gewijzigd worden (wellicht had je daar zelf ook op kunnen komen). Dit werkt bij mij (Excel 2002):
Code:
Sub opheffen()
Dim ww As String, x As Integer
ww = InputBox("Geef uw wachtwoord")
For x = 1 To Sheets.Count
Sheets(x).Unprotect ww
Next x
End Sub
Bij het uitvoeren van deze macro is het geen bezwaar als sommige bladen NIET beveiligd zijn.
 
Beste Zapatr

Na veel stoeiwerk blijkt de macro toch te werken! Ik werk overigens met Excel 2003. Bij werkblad 2 en 3 moet het aantal werkbladen van links naar rechts geteld worden. Niet de naam van een werkblad of het werkbladnummer dat VBA toekent aan het werkblad. Super bedankt voor je oplossingen!!!!! Toch nog wel een tweetal vraagjes, misschien kan jij ze beantwoorden. Nogmaals ik werk nauwelijks met VBA, dus misschien liggen ook deze vragen voor de hand.

Vraag 1: Hoe wordt de formule als het om een niet doorlopende reeks van werkbladen gaat of meerdere reeksen (zie onder)?
Vraag 2: Hoe ontkom ik bij het beveiligen of het opheffen van een aantal werkbladen om steeds het wachtwoord in te moeten geven? Wachtwoord is op elk werkblad hetzelfde!

tegelijk de werkbladen 2 en 3 beveiligen (werkbladen vanaf links tellen):

Sub Beveiligen()
Dim ww As String, x As Integer
For x = 2 To 3
ww = InputBox("Geef uw wachtwoord")
Sheets(x).protect ww
Next x
End Sub

tegelijk beveiliging van werkblad 2 en 3 opheffen (werkbladen vanaf links tellen):

Sub opheffen()
Dim ww As String, x As Integer
For x = 2 To 3
ww = InputBox("Geef uw wachtwoord")
Sheets(x).Unprotect ww
Next x
End Sub
 
Na veel stoeiwerk blijkt de macro toch te werken! Ik werk overigens met Excel 2003.
De macro's die jij hierboven plaatste én die ik plaatste, werken naast Excel 2002 ook allemaal in Excel 2003.
In Excel 2007 ben ik er niet zeker van, dat kan ik niet nagaan.
Bij werkblad 2 en 3 moet het aantal werkbladen van links naar rechts geteld worden. Niet de naam van een werkblad of het werkbladnummer dat VBA toekent aan het werkblad.
In bovenstaande macro's kent vba GEEN naam of nummer toe aan een werkblad! Als in vba staat: sheets(1), dan is dat blad1 in de Excel-werkmap, dat je ziet staan als je Alt-F11 drukt en dat is niet noodzakelijk het blad waarbij op de tab Blad1 staat. Als je namelijk bladen verwijdert en bijmaakt, dan kan de nummering wel eens anders zijn dan je denkt dat die is.
Vraag 1: Hoe wordt de formule als het om een niet doorlopende reeks van werkbladen gaat of meerdere reeksen (zie onder)?
Dat hangt er vanaf welke bladen het zijn. Zijn ze opeenvolgend, of zijn het willekeurige bladen russen een reeks andere? Voor opeenvolgende bladen gaf ik hierboven al het antwoord, ik zal het nog eens herhalen. Onderstaande macro's werken met zekerheid in Excel 2003.
Code:
Sub Beveiligen1()
' Beveiligen van blad2 en 3 door 1 keer een wachtwoord in te voeren
Dim ww As String, x As Integer
ww = InputBox("Geef uw wachtwoord")
For x = 2 To 3
Sheets(x).Protect ww
Next x
End Sub
Code:
Sub Beveiligen2()
' Beveiligen van bladen 2, 4, en 7 door 1 keer een wachtwoord in te voeren
Dim ww As String
ww = InputBox("Geef uw wachtwoord")
Sheets(2).protect ww
Sheets(4).protect ww
Sheets(7).protect ww
End Sub
Vraag 2: Hoe ontkom ik bij het beveiligen of het opheffen van een aantal werkbladen om steeds het wachtwoord in te moeten geven? Wachtwoord is op elk werkblad hetzelfde!
Op die vraag gaf ik al antwoord in mijn bericht van 17.11 . Via die macro wordt 1 keer een wachtwoord ingevoerd en daarmee wordt de beveiliging van ALLE werkbladen opgeheven !
 
Beste Zapatr

Super, het werkt allemaal. De enige vraag die ik nog heb is hoe de macro wordt als er meerdere reeksen (bijv. 2 t/m 4 en 7 t/m 9) of een reeks gecombineerd met individuele bladen (bijv. 2 t/m 4 en 7 en 9):thumb:
 
De enige vraag die ik nog heb is hoe de macro wordt als er meerdere reeksen (bijv. 2 t/m 4 en 7 t/m 9) of een reeks gecombineerd met individuele bladen (bijv. 2 t/m 4 en 7 en 9):thumb:
Ik val in herhaling, want de macro's daarvoor gelijken natuurlijk heel erg op die van hierboven. Eigenlijk zou je dat na de voorgaande berichten zelf moeten kunnen. Uitgaande van steeds hetzelfde wachtwoord voor alle beveiligde bladen:
Code:
Sub Beveiligen3()
' Beveiligen van bladen 2 t/m 4 en 7 t/m 9
Dim ww As String, x As Integer
ww = InputBox("Geef uw wachtwoord")
For x = 2 To 9
If x = 5 Then x = 7
Sheets(x).Protect ww
Next x
End Sub
Code:
Sub Beveiligen4()
' Beveiligen van bladen 2 t/m 4, 7 en 9
Dim ww As String, x As Integer
ww = InputBox("Geef uw wachtwoord")
For x = 2 To 9
If x = 5 Then x = 7
If x = 8 Then x = 9
Sheets(x).Protect ww
Next x
End Sub
Code:
Sub Opheffen()
' Beveiliging alle bladen opheffen
Dim ww As String, x As Integer
ww = InputBox("Geef uw wachtwoord")
For x = 1 To Sheets.Count
Sheets(x).Unprotect ww
Next x
End Sub
 
Beste Zapatr

Super. Bedankt voor de oplossingen en wat een geduld?:thumb: Jouw opmerkingen maken wel dat ik haast geen vragen meer aan jou durf te stellen. Jouw logische antwoorden zijn dit voor mij niet.
 
Jouw opmerkingen maken wel dat ik haast geen vragen meer aan jou durf te stellen.
Nou, daar hoef je niet bang voor te zijn; maar ik probeer je natuurlijk wel te prikkelen om de macro's goed te bestuderen.
Als je een vraag stelt op dit forum, is die niet alleen aan mij gericht maar aan alle lezers van het forum. En bij die lezers zijn er die meer verstand hebben van Excel dan ik, dus een antwoord zul je waarschijnlijk altijd wel krijgen.
 
Macro om werkblad beveiligen aan en uit te zetten.

Dit draadje heeft me enorm geholpen met een vergelijkbaar probleem.

Ik heb een aantal tabbladen beveiligd om er voor te zorgen dat collega's alleen het invoer tabblad gebruiken en niet per ongeluk de andere tabbladen gebruiken.

Als ik wat wil wijzigen dan moet ik van een 30 tal bladen de beveiliging opheffen en daarna weer instellen.

De macro in dit draadje was makkelijk aan te passen hiervoor. Als dank plaats ik mijn macro's in de hoop dat iemand er wat aan heeft.
Dit is het resultaat geworden:

Code:
Sub BladBeveiligenUit()
'
' BladBeveiligenUit Macro
' Bladbeveiligenuit
'
' Sneltoets: CTRL+u
'
Dim i As Integer
For i = 2 To Worksheets.Count
Sheets(i).Unprotect
Next
End Sub
Code:
Sub BladBeveiligenAan()
'
' BladBeveiligenAan Macro
' Bladbeveiligenaan
'
' Sneltoets: CTRL+a
'
Dim i As Integer
For i = 3 To Worksheets.Count
Sheets(i).Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False
Next
End Sub
 
Je hebt ten dele gelijk. Kwaadwillenden zullen inderdaad weinig moeite ermee hebben als er geen wachtwoord ingesteld is. Maar iemand die kwaad wil zal ook een manier vinden om het wachtwoord te kraken, daar zijn programmaatjes genoeg voor.

Het gaat er mij om dat de collega's, die totale noobs zijn, niet per ongeluk iets fout invoeren in 'beveiligde' tabbladen van een werkblad.

Maar bedankt voor de waarschuwing.
 
Nutttig ook voor mij

maar als je een verkeerd wachtwoord invoert gaat het fout!

Hoe lossen we dat dan op?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan