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

regel invoer blokkeren

Status
Niet open voor verdere reacties.

maomanna

Gebruiker
Lid geworden
20 feb 2014
Berichten
234
Hallo allen,

ik heb een gedeeld excelbestand waarbij ik invoer via een userform wil laten verlopen.

Nu is het zo dat de gebruiker GEEN handmatige regel mag toevoegen, maar wel celwaarden in een bepaalde range mag wijzigen.

In het voorbeeldbestand, mag de gebruiker alleen de gele cellen wijzigen en niks toevoegen.
Het invoegen van regels, heb ik al een werkende macro voor.
Bekijk bijlage blokkeren.xlsx
 
Een kwestie van de blokkering van de gele cellen eraf halen en vervolgens het werkblad beveiligen.

Met vriendelijke groet,


Roncancio
 
En dan werken de knoppen met macro's nog wel?
Er worden regelmatig rijen toegevoegd en weer verwijderd als ze voltooid zijn.
 
Ja, zet in VBA bij het beveiligen UserInterfaceOnly op True.
Bijv.:

Code:
Blad1.Protect UserInterfaceOnly:=True
...of wat korter...
Code:
Blad1.Protect , True

Het werkblad kan dan alleen via VBA worden aangepast en dus niet handmatig.

Met vriendeljke groet,


Roncancio
 
Dan blokt hij ook de andere cellen.

wel vond ik zoiets:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target <> Range("A1") Then Exit Sub

ActiveSheet.Unprotect

If Range("A1").Value = "xyz" Then
Range("B1").Locked = True
Range("C1").Locked = False
Range("D1").Locked = False
End If

If Range("A1").Value = "abc" Then
Range("B1").Locked = False
Range("C1").Locked = True
Range("D1").Locked = False
End If

If Range("A1").Value = 123 Then
Range("B1").Locked = False
Range("C1").Locked = False
Range("D1").Locked = True
End If

If Range("A1").Value = "" Then
Range("B1").Locked = False
Range("C1").Locked = False
Range("D1").Locked = False
End If

ActiveSheet.Protect

End Sub


Dan zou iets als een goede optie zijn?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Unprotect

Range("A1:D150").Locked = False

ActiveSheet.Protect

End Sub
 
Nee, dat hoeft niet. (zie bijgevoegd voorbeeld).

Bij het openen van het bestand verschijnt een menu.
In het menu staat een tekstveld en een knop.
De inhoud van het tekstveld wordt in de actieve cel geplaatst.
Je kunt overigens een andere cel selecteren voordat je op de knop drukt.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan