Probleem met beveiligd werkblad

Status
Niet open voor verdere reacties.

Marthy Mc Fly

Gebruiker
Lid geworden
14 okt 2010
Berichten
117
Hallo,

Ik heb een macro waarmee ik gegevens van het hoofdwerkblad wegschrijf naar een ander werblad.
Alleen is het zo dat ik deze laatste werkbladen wil beveiligen, zodat men hier niet kan in knoeien.
De macro raakt echter niet in de werkmappen als ze beveiligd zijn.
Ik heb voor elke maand een werkblad en deze zijn allen beveiligd met hetzelfde pw.
Ik heb onderstaande code ingevoegd. Deze code werkte op mijn pc (excell2010) correct.
Maar op het werk met excell2007 vraagt hij met diezelfde code om het pw in te geven.


i = 1
For Each it In Array("JAN", "FEB", "MAA", "APR", "MEI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEC")
With Sheets(it)
.Protect Password:=Choose(i, "PW"), UserInterfaceOnly:=True
'.EnableOutlining = True
End With
i = i + 1
Next

Hij mag dus vooral niet vragen om het pw in te geven voor bewerking.
 
in plaats van .Protect Password .Unprotect Password
en de regel met .Protect zet je weer aan het eind van de sub

volgens mij is dat genoeg
 
en welke fout is dat? kun je geen bestandje hier neer zetten zonder gevoelige info?
 
zo dan

Code:
i = 1
For Each it In Array("JAN", "FEB", "MAA", "APR", "MEI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEC")
With Sheets(it)
.Unprotect Password:=Choose(i, "PW")
.EnableOutlining = True
End With
i = i + 1
Next

die , UserInterfaceOnly:=True zat ik de weg
 
Laatst bewerkt:
Aan het einde van de sub moet ik dan volledig dezelfde code zetten, maar dan protect ipv unprotect
 
Hier de volledige code


Code:
Sub test()

i = 1
For Each it In Array("JAN", "FEB", "MAA", "APR", "MEI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEC")
With Sheets(it)
.Unprotect Password:=Choose(i, "PW")
End With
i = i + 1
Next

'DOE JE DING

i = 1
For Each it In Array("JAN", "FEB", "MAA", "APR", "MEI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEC")
With Sheets(it)
.Protect Password:=Choose(i, "PW"), UserInterfaceOnly:=True
.EnableOutlining = True
End With
i = i + 1
Next

End Sub
 
Alvast bedankt voor de reactie. Ik ka nu nog niet met zekerheid zeggen dat het werkt, daar er verschil zit tss
excell 2010 en zijn voorgangers. Kan dit morgen dus pas met zekerheid zeggen.
 
Nog steeds hetzelfde probleem. Als ik deze code gebruik op mijn pc met excell 2010 dan werkt het prima.
Op het werk met excell 2003 wil het niet lukken. Als ik de knop druk waar de macro achter zit, dan komt er
een msgbox tevoorschijn waar ik het pw moet invullen om de beveiliging op te heffen. Dit wil ik net niet.
Want dan moeten de andere gebruikers het pw ook telkens invoeren en dat is niet de bedoeling.
 
Hoe staat de macro beveiliging ingesteld op je werk?
 
als het wachtwoord voor alle bladen identiek is:

Code:
Sub test()
  For Each it In Array("JAN", "FEB", "MAA", "APR", "MEI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEC")
    if sheets(it).protectionmode then sheets(it).Unprotect "PW"
  Next

_ _ _ _ _   code


  For Each it In Array("JAN", "FEB", "MAA", "APR", "MEI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEC")
    Sheets(it).Protect "PW", UserInterfaceOnly:=True
  Next
End Sub

Mij lijkt het niet nodig de beveiliging van de werkbladen te halen om er met VBA gegevens uit te lezen.
 
Laatst bewerkt:
En nu zelf nog even analyseren waarom.....
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan