Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob CommandoButton gedrückt ist

Forumthread: Prüfen ob CommandoButton gedrückt ist

Prüfen ob CommandoButton gedrückt ist
16.07.2013 11:46:04
Pepi
Hallo zusammen
Wie kann ich in mit einem Makro in einem Modul prüfen, ob ein CommandoButton einer Userform gedrückt wurde. Ich mach es jetzt mit einer als Public definierten Variable, die ich dann auf 1 setze und wieder abfrage - doch scheint mir dieser umständlich zu sein.
vielen Dank für Tipps
Pepi

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob CommandoButton gedrückt ist
16.07.2013 11:54:38
Matthias
Hallo
Den Hintergrund verstehe ich leider nicht
Wenn es darum geht das Button nur 1x zu drücken kannst Du es ja nach _Click deaktivieren
Private Sub CommandButton1_Click()
CommandButton1.Enabled = False
End Sub
So siehst Du das es bereits angeklickt wurde
Gruß Matthias

Anzeige
AW: Prüfen ob CommandoButton gedrückt ist
17.07.2013 11:57:59
Pepi
Hallo zusammen
Jetzt komme ich nochmals mit meinem Thema, da ich glaube nicht ganz verstanden worden zu sein.
Ich habe eine Userform "uForm" mit zwei Commandobutten "Abbruch" und "Start"
In einem Standardmodul habe ich folgenden Code:
Sub  Userform()
uForm.show
if uForm.cmdEnde = true then exit Sub
'diese Abfrage geht sooo leider nicht - wie macht ihr das?
if uForm.cmdStart = true then
end if
End Sub

Anzeige
AW: Prüfen ob CommandoButton gedrückt ist
16.07.2013 11:56:02
Rudi
Hallo,
du kannst auch die Tag-Eigenschaft des cmd ändern und abfragen.
Private Sub CommandButton1_Click()
Select Case CommandButton1.Tag
Case "1": CommandButton1.Tag = "0"
Case Else: CommandButton1.Tag = "1"
End Select
MsgBox CommandButton1.Tag
End Sub
Gruß
Rudi

Anzeige
ok, ok aber ...
16.07.2013 12:04:02
Matthias
Hallo Rudi
Da weiß er aber beim 2.Klick nicht mehr ob er überhaupt schon mal draufgeklickt hat ;-)
Zumindest nach ein paar Bierchen ;-)
Vielleicht auch so:
Private Sub CommandButton1_Click()
Me.Caption = " Button wurde angklickt ;-)"
End Sub
Gruß Matthias

Anzeige
AW: Prüfen ob CommandoButton gedrückt ist
16.07.2013 12:10:45
ransi
Hallo Pepi
Irgendwo musst du den Click zwischenspeichern.
Ich sehe kein Problem darin das in einer Public-Variablen zu tun.
Dazu gibts die Dinger ja.
ransi

AW: Prüfen ob CommandoButton gedrückt ist
16.07.2013 12:32:13
Pepi
Hallo zusammen
Eine Publicvariable scheint mit schöner als die Werte von .Tag oder .enabled zu ändern.
Im Standardmodul ist .tag nicht bekannt, da eine lokale variable und .enabled muss zurückgesetzt werden, damit der Button wieder funktioniert. Ich bleibe dabei - trotzdem vielen Dank
Pepi

Anzeige
Im Standardmodul ist .tag nicht bekannt,
16.07.2013 12:47:34
Rudi
Hallo,
so ein Quatsch!
Du musst nur ordentlich referenzieren.
Gruß
Rudi
;
Anzeige

Infobox / Tutorial

Prüfen ob CommandButton gedrückt ist


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein CommandButton in einer Userform gedrückt wurde, kannst Du die folgenden Schritte ausführen:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge eine Userform hinzu: Klicke mit der rechten Maustaste auf dein Projekt im Projekt-Explorer, wähle "Einfügen" und dann "UserForm".

  3. Füge zwei CommandButtons hinzu: Ziehe die Buttons aus der Toolbox auf die Userform. Nenne sie cmdStart und cmdEnde.

  4. Erstelle ein Standardmodul, indem Du mit der rechten Maustaste auf dein Projekt klickst, "Einfügen" und dann "Modul" wählst.

  5. Füge den folgenden Code in das Standardmodul ein:

    Sub Userform()
        uForm.Show
        If uForm.cmdEnde.Value = True Then Exit Sub
        If uForm.cmdStart.Value = True Then
            ' Aktion für den Start-Button
        End If
    End Sub
  6. Füge den Click-Event für die CommandButtons hinzu. Zum Beispiel:

    Private Sub cmdStart_Click()
        MsgBox "Start-Button wurde gedrückt!"
    End Sub
    
    Private Sub cmdEnde_Click()
        MsgBox "Abbruch-Button wurde gedrückt!"
    End Sub

Jetzt kannst Du die Userform öffnen und testen, ob die Buttons korrekt reagieren.


Häufige Fehler und Lösungen

  • Fehler: Der Code im Standardmodul kann auf die Eigenschaften der CommandButtons nicht zugreifen.

    • Lösung: Stelle sicher, dass Du die Userform korrekt referenzierst. Beispiel:
    If uForm.cmdEnde.Enabled = True Then Exit Sub
  • Fehler: Die Buttons reagieren nicht wie erwartet.

    • Lösung: Überprüfe, ob die Buttons im Design-Modus aktiviert sind und die korrekten Namen verwendet werden.

Alternative Methoden

Eine alternative Möglichkeit, um den Status eines CommandButtons zu überprüfen, besteht darin, die Tag-Eigenschaft zu verwenden. Hier ein Beispiel:

Private Sub cmdStart_Click()
    If cmdStart.Tag = "" Then
        cmdStart.Tag = "1"
        MsgBox "Start-Button aktiviert!"
    Else
        MsgBox "Start-Button bereits gedrückt!"
    End If
End Sub

Diese Methode ermöglicht es Dir, den Status des Buttons zwischenspeichern, ohne eine Public-Variable zu verwenden.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die oben genannten Methoden in realen Szenarien anwenden kannst:

  1. Einmalige Verwendung des Start-Buttons:

    Private Sub cmdStart_Click()
        cmdStart.Enabled = False
        MsgBox "Start-Button wurde gedrückt und deaktiviert!"
    End Sub
  2. Visualisierung des Click-Status:

    Private Sub cmdStart_Click()
        Me.Caption = "Start-Button wurde gedrückt!"
    End Sub

In diesen Beispielen siehst Du, wie Du den Status des Buttons visuell darstellen oder die Funktionalität anpassen kannst.


Tipps für Profis

  • Verwende Public-Variablen, um den Status der Buttons zu speichern, wenn Du mehrere Userforms oder Module hast.
  • Nutze die Tag-Eigenschaft kreativ, um zusätzliche Informationen zu speichern, die für die Logik Deiner Anwendung nützlich sein können.
  • Teste Deine Userform gründlich, um sicherzustellen, dass alle Event-Handler korrekt funktionieren, insbesondere bei komplexen Anwendungen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere CommandButtons in einer Userform verwalten? Du kannst für jeden Button einen eigenen Click-Event definieren und deren Status in einer Public-Variable speichern.

2. Was tun, wenn mein Button nicht reagiert? Überprüfe, ob der Button im Design-Modus aktiviert ist und ob die Event-Handler richtig verknüpft sind.

3. Ist es möglich, den Status eines CommandButtons zu speichern, wenn die Userform geschlossen wird? Ja, Du kannst die Werte in einer Public-Variable oder in einer Zelle speichern und beim Öffnen der Userform wieder abrufen.

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