Excel VBA Button Enable?
Hallo Freunde,
Ich habe einen Button in Excel implementiert, der sichtbar sein soll wenn meine Zelle A1 die Zahl 2 enthält.
Der Code dafür lautet:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error GoTo ErrHandler
Dim rngButton1 As Integer
rngButton1 = A1
If rngButton1 = 2 Then
CommandButton1.Enabled = False
Else
CommandButton1.Enabled = True
End If
Application.EnableEvents = True
Exit Sub
ErrHandler:
Application.EnableEvents = True
End Sub
Der Code funktioniert an und für sich, es kommt zu keiner Fehlermeldung.
Aber der Button bleibt egal was ich einstelle, Sichtbar.
Wo liegt der Fehler?
LG
1 Antwort
Hallo,
zum aus/einblenden verwendet man die Eigenschaft ".Visible", ".Enabled" müsste lediglich die Funktion des Objekts deaktivieren. Du prüfst außerdem nicht die Zelle A1 auf den Wert 2, sondern gibst stattdessen der Variablen "rngButton1" den Wert "A1" und prüfst ob diese Variable den Wert 2 enthällt.
Dieser Code sollte funktionieren:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Range("A1") = 2 Then
ActiveSheet.CommandButton1.Visible = True
Else
ActiveSheet.CommandButton1.Visible = False
End If
End Sub
:? dieses Verhalten kann ich mir nicht erklären und schaffe es auch nicht zu reproduzieren. Anscheinend wird der Code bei dir beim Wechseln des Zellwertes auf 2 nicht ausgeführt, daher vermute ich die Ursache bim Worksheet_Change, funktioniert es wenn du einen anderen Trigger verwendest, z.B eine Selektionsänderung?:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveSheet.Range("A1") = 2 Then
ActiveSheet.CommandButton1.Visible = True
Else
ActiveSheet.CommandButton1.Visible = False
End If
End Sub
Auch dein Programmcode liefert kein Fehler, aber der Code funktioniert nur 1 mal.
Sprich. Ich ändere den Wert in Zelle A1 auf 1 und der Button verschwindet, aber mit anschließedner Änderung auf 2, taucht dieser nicht mehr auf