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

Cel beveiligen na invoer

Status
Niet open voor verdere reacties.

TempoWillem

Gebruiker
Lid geworden
8 okt 2015
Berichten
39
Hallo allemaal,

Na supersnelle en succesvolle hulp bij een eerdere vraag ga ik maar meteen voor een tweede:

Ik wil cellen direct na invoer beveiligen zodat de ingevoerde naam niet zo maar gewist kan worden. Nu heb ik daar een stukje VBA voor gevonden die in de programmacode van een werkblad moet komen, maar die werkt niet goed. De bedoeling van deze code is de te bewerken cellen te ontgrendelen, dan het werkblad te beveiligen en dan de code toe te voegen.

De code is als volgt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Len(Target.Value) > 0 Then
Me.Protect userinterfaceonly:=True, Password:=”Iets”
Target.Locked = True
End If
End If
End Sub

Helaas geeft Excel hierbij direct na invoer een foutmelding dat het wachtwoord niet klopt en beveiligt de cel dan niet. (En ja, ik heb het woordje "Iets" in de code vervangen door het daadwerkelijk gebruikte wachtwoord.)
Bovendien geldt dit dan voor het hele werkblad, terwijl ik alleen kolom A daarmee wil beschermen.

Weet iemand wat er misgaat en hoe ik het tot alleen kolom A kan beperken? Of hoe het anders/beter/makkelijker kan?

Bij voorbaat dank!
 
Zijn dat dubbele quotes die naast de enter op je toetsenbord?
 
Zijn dat dubbele quotes die naast de enter op je toetsenbord?

Ik voel de bui al hangen...:eek:
Wat ik heb geplaatst is copy-paste, dus rechtstreeks overgenomen van iemand. Ik vermoed dat die quotes er niet bij moeten?
 
De dubbel qoutes moeten juist wel, Shift + toets links van de Enter.
Welke jij gebruikt weet ik helaas niet.
Test het maar eens.
 
De dubbele quotes moeten er inderdaad wel bij. TS heeft daar geen dubbele quotes staan maar het HTML character &# 148; terwijl het ASCII 34 moet zijn. Wat HSV al bedoelde.
 
Laatst bewerkt:
Ik heb thuis een Duits toetsenbord dus die heeft een andere layout, maar heb in de code net even de quotes vervangen voor mijn "zelf getypte" en nu werkt dat inderdaad. Dat moet je maar net weten zeg...

Thanks so far in ieder geval, nu staat alleen nog mijn vraag hoe ik dit kan beperken tot alleen kolom A... Enig idee?
 
Vervang dit: If Target.Cells.Count = 1
Eens door: If Target.Column = 1
 
Dank U!!

Het werkt helemaal zoals ik bedoel zo! Nou nog even doorgronden wat de code inhoudt en dan hoef ik de volgende keer minder te vragen ;)

Ontzettend bedankt!
 
Korte uitleg. In Target krijg je het cel object door dat net werd verlaten. Een object heeft veel attributen en deze kan je lezen en/of zetten. In dit geval gebruik je dan Target.Column om op te vragen wat het kolomnummer van het doorgegeven cel object is. Je geeft aan dat het alleen bij kolom 1 mag werken. Kolom 1 is kolom A.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan