Microsoft Excel

Herbers Excel/VBA-Archiv

Sperren von Zellen auf Basis Dropdownbox


Betrifft: Sperren von Zellen auf Basis Dropdownbox von: Lars Kollenkark
Geschrieben am: 16.07.2018 04:01:40

Hallo zusammen,

folgendes möchte ich gern erreichen:
B1 ist eine Dropdownbox und es können mehrere Einträge ausgewählt werden.
Wenn in Zelle B1 ein "A+" steht, dann sollen aus den Zellen D33 bis M37 die Werte gelöscht werden und die Zellen D33:M37 gesperrt werden.

Bei Auswahl eines anderen Eintrags in B1 soll das Sperren der Zellen wieder aufgehoben werden.
Da ich nicht so erfahren mit VBA bin, danke ich euch bereits vorab für eure Unterstützung.

Viele Grüße
Lars

  

Betrifft: AW: Sperren von Zellen auf Basis Dropdownbox von: Oberschlumpf
Geschrieben am: 16.07.2018 06:32:38

Hi Lars,

füge den folgenden Code ins Change-Ereignis der betreffenden Tabelle ein (von mir ungetestet, da keine Testdatei verfügbar):

If Target.Address = "$B$1" Then
    ActiveSheet.Unprotect
        If Target.Value = "A+" Then
                With Range("D33:M37")
                    .Value = ""
                    .Locked = True
                End With
            Else
                Range("D33:M37").Locked = False
        End If
    ActiveSheet.Protect
End If

Da du VBA-Anfänger bist + vllt nicht weißt, wo genau du den Code einfügen sollst, hier noch ne kleine Bilder-Anleitung:

1. mit rechte Maustaste auf den Blattnamen der Tabelle klicken + "Code anzeigen" auswählen


2. im oberen linken Dropdown "Worksheet" auswählen


3. im oberen rechten Dropdown "Change" auswählen


4. den Code da einfügen, wie im nächsten Bild gezeigt


Hilfts?

Ciao
Thorsten


  

Betrifft: noch was vergessen von: Oberschlumpf
Geschrieben am: 16.07.2018 06:38:19

Hi Lars,

du solltest beachten, dass spätestens nach erstmaligem Ausführen des Codes durch den Befehl ActiveSheet.Protect alle Zellen gesperrt sind, auch die Zelle B1.

Um das zu verhindern, musst du, bei noch deaktiviertem Blattschutz, alle Zellen, die immer veränderbar sein müssen...

...markieren
...rechte Maustaste klicken + "Zellen formatieren" auswählen
...das Register "Schutz" auswählen
...den Haken für "Gesperrt" entfernen

Ciao
Thorsten


  

Betrifft: AW: noch was vergessen von: Lars Kollenkark
Geschrieben am: 16.07.2018 18:57:27

Hallo Thorsten,

soweit so gut, vielen herzlichen Dank für die schnelle Hilfe.
Bei Auswahl in der Dropdownbox werden die Einträge gelöscht und auch richtig gerechnet.

Der Nutzer muss aber auch die Chance bekommen, die Auswahl in B1 rückgängig zu machen und einen anderen Eintrag auszuwählen. Es ist okay, wenn die Werte aus D33:M37 gelöscht bleiben. Aber er fragt bei Änderung von B1 nach dem Passwort für das Aufheben des Blattschutzes.
Müsste man dafür dem VBA das Passwort mitgeben? Wie kann ich das Umgehen?

Zum besseren Verständnis habe ich die Datei hochgeladen.
Viele Grüße
Lars

https://www.herber.de/bbs/user/122715.xlsm


  

Betrifft: AW: noch was vergessen von: Oberschlumpf
Geschrieben am: 16.07.2018 20:15:22

Hi Lars,

habe den Code angepasst:
https://www.herber.de/bbs/user/122719.xlsm

Ja, bei Verwendung von Blatt- oder sonstigem Schutz mit Passwort, muss das Passwort im VBA-Code mit angegeben werden.

Wenn du nicht willst, dass sich wer anders den Code und somit das Passwort anguckt, musst du auch den Code selbst mit einem Passwortschutz versehen.

Klick dazu im VBE auf Extras/Eigenschaften von.../Schutz, setz den Haken und gib 2x ein Passwort ein.

Hilfts?

Ciao
Thorsten


  

Betrifft: AW: noch was vergessen von: Lars Kollenkark
Geschrieben am: 17.07.2018 21:23:00

Hi Thorsten,

konnte nun umfassend testen und prüfen.
Macht exakt was es tun soll.

Vielen herzlichen Dank für deinen Support.
Lars


Beiträge aus dem Excel-Forum zum Thema "Sperren von Zellen auf Basis Dropdownbox"