Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: commandbutton bedingt freigeben

commandbutton bedingt freigeben
Ina
Hallo,
ich möchte einen Commandbutton Click nur dann freigeben, wenn in D42 ein "x" steht. In Zelle D42 allerdings, wird das x berechent mit: =WENN(D36=D39;"x";"").
Grüße Ina
Anzeige
AW: commandbutton bedingt freigeben
09.10.2010 10:47:01
Hajo_Zi
Hallo Ina,
schreibe Doch als erste Zeile im Code
If Ucase(Range("D42"))"X" then Exit Sub

AW: commandbutton bedingt freigeben
09.10.2010 10:49:01
ransi
Hallo
Reicht dir eventuell schon einfach sowas ?
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Private Sub Worksheet_Calculate()
CommandButton1.Enabled = Range("D42").Value = "x"
End Sub


ransi
Anzeige
AW: commandbutton bedingt freigeben
09.10.2010 11:09:28
Ina
hm, funktioniert irgendwie nicht.
Ich habe die Datei mal hochgeladen.
https://www.herber.de/bbs/user/71825.xls
Es geht um den Commandbutton im Tabellenblatt "Eingabe". Es soll verhindert werden, dass doppelte Einträge ins Datenblatt kommen. Hierzu mache ich eine Prüfung mit sverweis im Blatt "Eingabe" D36 D39 D42.
Grüße Ina
Anzeige
AW: commandbutton bedingt freigeben
09.10.2010 11:29:17
Hajo_Zi
Hallo Ina,
dann mache es so

Private Sub CommandButton1_Click()
If Range("D42").Text = "#NV" Then Exit Sub
If UCase(Range("D42"))  "X" Then Exit Sub

Gruß Hajo
Anzeige
AW: commandbutton bedingt freigeben
09.10.2010 11:35:31
Ina
Hallo Hajo,
das habe ich in den code des commandbutton am Anfang eingefügt und jetzt geht er garnicht mehr.
...muss erstmal einkaufen, bin gegen Abend wieder online.
AW: commandbutton bedingt freigeben
09.10.2010 11:40:53
Hajo_Zi
Halo Ina,
wenn als Formelergebnis "x" oder "X" rauskommt, wird der Code ausgeführt.
Gruß Hajo
Anzeige
AW: commandbutton bedingt freigeben
09.10.2010 17:52:43
Ina
Hallo Hajo,
upps, jetzt hab ichs gesehen, was falsch ist, mein Fehler. Also wenn da ein "X" steht soll der Code nicht ausgeführt werden.
Es wird ja ein Vergleich ausgeführt. Wenn in beiden Zellen dasselbe erscheint, kommt das "X" und der Code darf nicht ausgeführt werden. Klar, es sollen ja auch keine Einträge doppelt eingetragen werden.
Kannst du das nochmal umschreiben?
Grüße Ina
Anzeige
AW: commandbutton bedingt freigeben
09.10.2010 17:58:08
Hajo_Zi
Hallo Ina,
der vorgeschlagene Code war
 Private Sub CommandButton1_Click()
If Range("D42").Text = "#NV" Then Exit Sub
If UCase(Range("D42"))  "X" Then Exit Sub

das bedeutet
1. wenn #NV in der Zelle steht führe das Makro nicht aus.
2. wenn was anderes als "X" in der Zelle steht führe das Makro nicht aus.
Diesen zweiten Vergleich hätte ich jetzt von
 auf =

geändert.
Es war bisher nur von einer Zelle die Rede, warum jetzt "beide Zellen"
Gruß Hajo
Anzeige
AW: commandbutton bedingt freigeben
09.10.2010 18:25:22
Ina
Daanke Hajo,
jetzt funktioniert es. Danke für die Erläuterung dazu, was du da geschrieben hast. Das hat mir viel geholfen. Habe also jetzt geschrieben:
If Range("D42").Text = "X" Then Exit Sub
Grüße Ina
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Commandbutton in Excel bedingt freigeben


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und gehe zu dem Arbeitsblatt, auf dem sich der Commandbutton befindet.

  2. Klicke mit der rechten Maustaste auf den Commandbutton und wähle „Code anzeigen“.

  3. Füge den folgenden VBA-Code ein, um den Commandbutton nur freizugeben, wenn in Zelle D42 ein „x“ steht:

    Private Sub CommandButton1_Click()
        If Range("D42").Text = "X" Then Exit Sub
        ' Hier kommt der Code, der ausgeführt werden soll, wenn D42 nicht "X" ist
    End Sub
  4. Schließe den VBA-Editor und teste den Button in deinem Arbeitsblatt.


Häufige Fehler und Lösungen

  • Fehler: Der Button reagiert nicht.

    Lösung: Überprüfe, ob der Code korrekt in das Click-Ereignis des Commandbuttons eingefügt wurde. Achte darauf, dass der Code in einem gültigen VBA-Modul steht.

  • Fehler: Der Button ist immer aktiv, auch wenn D42 ein „X“ enthält.

    Lösung: Stelle sicher, dass du die richtige Schreibweise in der Bedingung verwendest. Der Vergleich sollte exakt sein: If Range("D42").Text = "X" Then Exit Sub.

  • Fehler: #NV-Wert in D42 führt zu Problemen.

    Lösung: Füge eine zusätzliche Bedingung hinzu, um den #NV-Wert zu überprüfen:

    If Range("D42").Text = "#NV" Then Exit Sub

Alternative Methoden

Eine alternative Methode besteht darin, den Commandbutton automatisch zu aktivieren oder zu deaktivieren, je nachdem, was in D42 steht. Das kann mit dem Worksheet_Calculate-Ereignis umgesetzt werden:

Private Sub Worksheet_Calculate()
    CommandButton1.Enabled = (Range("D42").Value = "x")
End Sub

Dieser Code überprüft die Bedingung jedes Mal, wenn das Arbeitsblatt neu berechnet wird.


Praktische Beispiele

Angenommen, du hast eine Excel-Tabelle, in der Benutzer Daten eingeben. Der Commandbutton soll nur aktiviert werden, wenn in Zelle D42 ein „x“ steht, was bedeutet, dass die Eingabe gültig ist. Mit dem oben beschriebenen VBA-Code kannst du sicherstellen, dass nur gültige Eingaben verarbeitet werden.


Tipps für Profis

  • Nutze die UCase-Funktion, um sicherzustellen, dass der Vergleich nicht von der Groß- oder Kleinschreibung abhängt:

    If UCase(Range("D42").Text) = "X" Then Exit Sub
  • Kommentiere deinen Code gut, damit du und andere Benutzer in Zukunft besser nachvollziehen können, was der Code macht.

  • Teste deinen Code gründlich, insbesondere wenn du mit Bedingungen arbeitest, die auf Zellwerte basieren.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Commandbutton nur bei bestimmten Bedingungen aktiviert wird?
Du kannst die Bedingungen im Click-Ereignis des Commandbuttons festlegen, indem du den entsprechenden VBA-Code einfügst.

2. Was kann ich tun, wenn der Button trotz korrekter Eingabe nicht funktioniert?
Überprüfe, ob die Bedingungen im Code korrekt formuliert sind und ob keine anderen Makros oder Bedingungen in Konflikt stehen.

3. Kann ich mehrere Bedingungen für die Aktivierung des Buttons festlegen?
Ja, du kannst mehrere Bedingungen in deinem Code kombinieren, um die Logik entsprechend anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige