ich möchte gerne eine Zelle oder Zellbereich sperren, wenn eine Checkbox aktiviert ist. wie macht man das ?
Danke im voraus
Thomas
Private Sub CheckBox1_Click()
With Sheets("Tabelle1")
.Unprotect "passwort"
.Range("A1").Locked = IIf(CheckBox1, True, False)
.Protect "passwort"
End With
End Sub
Private Sub UserForm_initialize()
CheckBox1 = Sheets("Tabelle1").Range("A1").Locked
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
Set c = Range("A1:A100")
Set Target = Intersect(c, Target)
If Not Target Is Nothing Then
ActiveSheet.Unprotect ""
For Each c In Target.Cells
With c
.Font.Name = "Marlett"
.Font.Size = 10
If .Value = "r" Then
.Value = "a"
.Font.ColorIndex = 50
Cells(.Row, "D").Locked = False
Else
.Value = "r"
.Font.ColorIndex = 3
Cells(.Row, "D").Locked = True
End If
End With
Next
ActiveSheet.Protect ""
End If
End Sub
Diese bewirkt, daß bei einem Klick auf die ersten 100 Zeilen in Spalte A ein rotes Kreuz bzw. ein grünes Häkchen gesetzt wird, entsprechend dem Zustand "Gesperrt/frei" der (beispielsweise) Spalte "D", der damit auch gleich gesetzt wird.
Ich hoffe das hilft dir mehr...
mfg
Erstelle eine Checkbox: Füge eine Checkbox in der gewünschten Zelle ein. Gehe dazu zu Entwicklertools > Einfügen > Checkbox (Formularsteuerelement).
Verknüpfe die Checkbox mit einer Zelle: Klicke mit der rechten Maustaste auf die Checkbox und wähle Steuerelement formatieren. Wähle dort eine Zelle aus, die den Status der Checkbox anzeigen soll.
VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
Code eingeben: Füge den folgenden Code in das entsprechende Arbeitsblatt ein (z.B. Tabelle1):
Private Sub CheckBox1_Click()
With Sheets("Tabelle1")
.Unprotect "passwort"
.Range("A1").Locked = CheckBox1.Value
.Protect "passwort"
End With
End Sub
Sichern der Änderungen: Schließe den VBA-Editor und teste die Checkbox. Wenn sie aktiviert ist, sollte die Zelle "A1" gesperrt werden, und wenn sie deaktiviert ist, sollte die Zelle wieder bearbeitbar sein.
Checkbox funktioniert nicht: Stelle sicher, dass die Checkbox korrekt mit einer Zelle verknüpft ist. Überprüfe auch die Makrosicherheitseinstellungen in Excel.
Zelle bleibt immer gesperrt: Achte darauf, dass der Code im CheckBox1_Click-Ereignis korrekt ist. Prüfe, ob das richtige Arbeitsblatt angesprochen wird.
Schriftart wird nicht angezeigt: Wenn du das Marlett-Zeichen verwenden möchtest, stelle sicher, dass die Schriftart der Zelle auf Marlett eingestellt ist, damit die Häkchen und Kreuze korrekt angezeigt werden.
Eine Alternative zur Verwendung von Formularsteuerelementen ist die Nutzung von ActiveX-Steuerelementen. Diese bieten mehr Funktionen, benötigen jedoch ebenfalls VBA-Programmierung. Du kannst auch die Worksheet_SelectionChange-Ereignisprozedur verwenden, um die Zellen basierend auf dem Zustand von Checkboxen zu sperren oder zu entsperren, wie es in dem ursprünglichen Beitrag beschrieben wurde.
Ein praktisches Beispiel für die Verwendung von Marlett-Zeichen:
Spalte für Checkboxen erstellen: Verwende die Spalte A für Checkboxen und formatiere die Zellen mit der Schriftart Marlett.
VBA-Code für die Spalte A: Setze den folgenden Code in das Worksheet_SelectionChange-Ereignis ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
Set c = Range("A1:A100")
Set Target = Intersect(c, Target)
If Not Target Is Nothing Then
ActiveSheet.Unprotect ""
For Each c In Target.Cells
With c
If .Value = "r" Then
.Value = "a"
.Font.ColorIndex = 50
Cells(.Row, "D").Locked = False
Else
.Value = "r"
.Font.ColorIndex = 3
Cells(.Row, "D").Locked = True
End If
End With
Next
ActiveSheet.Protect ""
End If
End Sub
Verwende benutzerdefinierte Schriftarten: Die Verwendung von Marlett kann das Erstellen von Checkboxen vereinfachen. Experimentiere mit verschiedenen Schriftarten, um das gewünschte Erscheinungsbild zu erzielen.
Makros abspeichern: Vergiss nicht, deine Excel-Datei als xlsm-Format zu speichern, um die Makros zu behalten.
Schutz der Arbeitsmappe: Achte darauf, dass du die Arbeitsmappe schützt, um unautorisierte Änderungen zu verhindern. Verwende Passwortschutz für kritische Zellen.
1. Wie kann ich mehrere Checkboxen gleichzeitig hinzufügen?
Du kannst mehrere Checkboxen direkt kopieren und im gewünschten Bereich einfügen. Achte darauf, die Zellen, mit denen sie verknüpft sind, entsprechend anzupassen.
2. Was ist der Unterschied zwischen Formularsteuerelementen und ActiveX-Steuerelementen?
Formularsteuerelemente sind einfacher und benötigen weniger Code, während ActiveX-Steuerelemente mehr Funktionalitäten bieten, aber auch komplexer in der Handhabung sind.
3. Wie kann ich das Marlett-Zeichen in Excel verwenden?
Ändere die Schriftart der Zelle auf Marlett und verwende die Buchstaben a für ein Häkchen und r für ein Kreuz.