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

Vergrendelen cellen om invoer te weigeren

Status
Niet open voor verdere reacties.

sanders1969

Gebruiker
Lid geworden
29 dec 2018
Berichten
243
Weet toevallig iemand hoe je de cellen via vba kan vergrendelen om invoer te weigeren?
Onderstaande syntaxis heb ik doorgevoerd maar kan nog steeds wijzigen.
Ik verwacht dat ik er bijna ben maar doe nog iets verkeerd of ik zit helemaal verkeerd dat zou ook heel goed kunnen.

With Worksheets("Blad1")
.Protect DrawingObjects:=false, Contents:=false, Scenarios:=False, AllowInsertingRows:=false, AllowDeletingRows:=false, Password:=defww
Application.ScreenUpdating = True
End With
 
Met Contents:=false bescherm je de inhoud niet ;)

En waar heb je die code staan?
Dit zou het toch moeten doen:
Code:
Sheets("Blad1").Protect DrawingObjects:=False, Contents:=True, Scenarios:=False, Password:=defww

Die defww is een variabele?
 
Laatst bewerkt:
Klopt defww is een variabele echter kan ik na het runnen van onderstaande syntaxis nog steeds de sheet wijzigen.
Sheets("Blad1").Protect DrawingObjects:=False, Contents:=True, Scenarios:=False, Password:=defww
Is er nog een reden waarom het vergrendelen genegeerd kan worden?
 
Die code is goed.
Je laat nog steeds niet zien hoe of waar je deze uitvoert.
 
Sorry bij deze:

Code:
Private Sub ProtectWorksheet()
    
    On Error GoTo ProtectWorksheetErr
    
    With Worksheets("Blad1")
        '.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False, AllowInsertingRows:=False, AllowDeletingRows:=False, Password:=defww
        .Protect DrawingObjects:=False, Contents:=True, Scenarios:=False, Password:=defww
        Application.ScreenUpdating = False
    End With

ProtectWorksheetErr:
If Err.Number <> 0 Then
    MsgBox "Foutomschrijving: " & Err.Description, vbCritical + vbOKOnly, "Fout tijdens vergrendelen"
    Err.Clear
End If
End Sub
 
En waar wordt de Sub ProtectWorksheet uitgevoerd?
 
Code:
Application.ScreenUpdating = False
lijkt mij niet echt nuttig net als de hele code. Heb je enig idee wat je aan het doen bent?
 
Zoals ik al bij het begin aangaf ik dacht dat ik in de buurt ben maar gezien jullie reacties ben ik ver weg.
Private Sub ProtectWorksheet() wordt aangeroepen bij het inladen van de excel sheet en na de sub stop ik de code om te kijken of ik wijzigingen kan aanbrengen in de sheet.

Om te voorkomen om straks veel e-mails te sturen weten jullie hoe je een worksheet kan vergrendelen via vba?
Zo ja zou je die code kunnen sturen?
Ik verwacht dat dit veel tijd scheelt en bij voorbaat dank!
 
Met het laden van de excel sheet bedoel je de SheetActivate?
Of de Workbook_Open?
En hoe wordt die daar dan aangeroepen?
En waar staat de Sub ProtectWorksheet?

Je ziet dat er vele mogelijkheden zijn.
Plaats eens een voorbeeld van je document.
 
Laatst bewerkt:
Onderstaande vind plaats echter VenA beweert of ik wel begrijpt wat ik aan het doen ben dus ga ik er vanuit dat de sub niet werkt.

Code:
Private Sub Workbook_Open()
	ProtectWorksheet    
End Sub
 
En waar staat dan de Sub ProtectWorksheet?

En je weet het inderdaad kennelijk niet.
Maar daar is Helpmij voor toch? ;)
 
Laatst bewerkt:
Haha prima, programmeer 20 jaar in vba maar excel doe ik vrijwel nooit iets.

Sub ProtectWorksheet zit in een module waar meerdere subs en functies in staan.
Puur om de vergrendeling te testen roep ik alleen Sub ProtectWorksheet aan dus de andere subs of functies kunnen niet tegenstrijdig werken.
 
Dan is dit dus voldoende:
Code:
Private Sub Workbook_Open()
    Sheets("Blad1").Protect Password:="JeWachtwoord"
End Sub
 
En DAT kan dus niet.
Wat ik al zei, plaats je document.
 
Ik beweer dat jij er niets van begrijpt. Volgens mij lees je de reacties niet of begrijp je deze ook niet. Iig doe je er niets mee.
 
Ik heb het in een blanco excel bestand geplaatst en dan werkt het wel.
Ik zal de code nalopen en kijken wat kennelijk het tegenspreekt.
Dus nog even puzzelen...
Bedankt Edmoor en sorry voor het ongemak.
 
Geen probleem :)
 
Ik vraag me af waarom zoveel tijd verprutsen aan iemand die zelfs geen voorbeeld wil plaatsen?
 
Excel bestand is van een klant van mij dus ik kan niet zomaar even (kritische) bedrijfsgegevens openbaar gooien.
Ik hoop dat je meer duidelijkheid heb gekregen anders had ik het heus wel gedaan hoor.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan