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

Forumthread: ToggleButton in UForm

ToggleButton in UForm
30.09.2018 23:58:39
Fred
Hallo zusammen
ich habe eine User Form auf der mehrere ToggleButton sind. die Button wollte ich Eigendlich nach diesem Prinzip gestallten.

Private Sub ToggleButton1_Click()
If Me.ToggleButton1.Value = True Then
Me.ToggleButton1.Caption = "nein"
Range("A23") = "0"
Else
Me.ToggleButton1.Caption = "Ja"
Range("A23") = "1"
End If
With ToggleButton1
.BackColor = IIf(.Value = True, RGB(250, 0, 0), RGB(0, 250, 0))
End With
End Sub
Wie erreiche ich denn jetzt das wenn ich die Userform schließe, und sie dann wieder öffne das immer noch das aktiviert ist was ich angewählt habe.
Denn jedes mal wenn ich die Form schließe werden die Buttons zurück gesetzt.
Grüße Fred
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ToggleButton in UForm
01.10.2018 00:15:59
Mullit
Hallo,
hatte Daniel neulich mal zurecht als Tipp gegeben: Der ToggleButton besitzt eine ControlSource-Eigenschaft, da kannst Du im Eig.-Fenster die Zelle eintragen, in die der aktuelle Zustand als boolescher Wert geschr. wird. Der bleibt dann auch nach jedem Neuöffnen erhalten....
Gruß, Mullit
Anzeige
sry, mal wieder nicht aktualisiert. o.w.T.
01.10.2018 00:20:04
Werner
AW: null Problemo, doppelt hält besser...;-) owT
01.10.2018 00:22:45
Mullit
AW: ToggleButton in UForm
01.10.2018 00:19:15
Werner
Hallo Fred,
dein ToggleButton hat die Eigenschaft "ControlSource"
Schreib dort irgendeine Zelle eines Blattes rein. Die Zelle sollte halt außerhalb des sichtbaren Bereiches sein, oder du blendest die Spalte dieser Zelle aus.
ControlSource: Tabelle1!Z1
Dort wird dann,je nach Zustand des ToggleButtons Wahr oder Falsch ausgegeben.
Wenn du jetzt deine Userform zu machst, bleibt dir beim wieder öffnen der UserForm der Zustand des ToggleButtons über diesen Zelleintrag erhalten.
Gruß Werner
Anzeige
AW: ToggleButton in UForm
01.10.2018 14:52:15
Fred
Hallo Multi, und Werner
Danke für Eure Antworten ,leider haben die mich nicht zum richtigen Ergebniss gebracht.
Ich habe die ControlSource: für den Button vor gegeben doch leider führt das nicht zum Erfolg.
deshalb habe ich dann nochmal den Code etwas umgeschrieben, so das jetzt wenigstens der Button richtig dargestellt wird als geklickt oder nicht. Leider wird das Caption und das BackColor nach neu öffnen der Userform nicht angezeigt. Erst wieder wenn ich den Button klicke.
hier nochmal der geänderte Code.

Private Sub ToggleButton1_Click()
Dim TB As ToggleButton
Set TB = ToggleButton1
If TB.Value = True Then
TB.Caption = "nein"
Range("A23") = ""
Else
TB.Caption = "Ja"
Range("A23") = "1"
End If
With TB
.BackColor = IIf(.Value = True, RGB(250, 0, 0), RGB(0, 250, 0))
.ForeColor = RGB(0, 0, 200)
End With
Grüße Fred
Anzeige
AW: ToggleButton in UForm
01.10.2018 14:59:33
Daniel
Hi
die Verknüpfung mit der Zelle über die ControlSource speichert nur den ToggleButton-Wert mit WAHR/FALSCH (aktiv/nicht aktiv)
Wenn du den Togglbuttontext entsprechend angepasst haben willst, dann brauchst du folgendes:
1. die Vernküpfung mit der ControlSource, um den Togglebuttonzustand zu speichern und beim nächsten Öffnen wieder zur Verfügung zu haben
2. deinen bisherigen Code für das ToggleButton-Click-Event um die Überschrift bei Klick zu ändern
3. zusätzlich brauchst du noch im Initialize-Event der Userform einen Code, der den Zustand jeders Togglebuttons überprüft und ihm die entsprechende Caption gibt.
(also im Prinzip den Code aus den Click-Events der Togglebuttons)
Gruß Daniel
Anzeige
AW: ToggleButton in UForm
01.10.2018 15:03:13
Fred
Hallo Daniel
Vielen Dank für Deine Info. genau das wars funktioniert jetzt prima.
Grüße Fred
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ToggleButton in UForm richtig nutzen


Schritt-für-Schritt-Anleitung

Um einen ToggleButton in einer UserForm zu verwenden, folge diesen Schritten:

  1. UserForm erstellen: Gehe in die Entwicklertools in Excel und füge eine neue UserForm hinzu.

  2. ToggleButton einfügen: Wähle den ToggleButton aus der Werkzeugleiste und ziehe ihn in die UserForm.

  3. Code für ToggleButton hinzufügen: Füge den folgenden VBA-Code in das Code-Fenster der UserForm ein:

    Private Sub ToggleButton1_Click()
       If Me.ToggleButton1.Value = True Then
           Me.ToggleButton1.Caption = "nein"
           Range("A23") = "0"
       Else
           Me.ToggleButton1.Caption = "Ja"
           Range("A23") = "1"
       End If
       With ToggleButton1
           .BackColor = IIf(.Value = True, RGB(250, 0, 0), RGB(0, 250, 0))
       End With
    End Sub
  4. Zustand speichern: Um den Zustand des ToggleButtons beim Schließen der UserForm zu speichern, füge die ControlSource-Eigenschaft hinzu:

    • Klicke mit der rechten Maustaste auf den ToggleButton und wähle "Eigenschaften".
    • Setze die ControlSource auf eine Zelle, z.B. Tabelle1!Z1.
  5. Zustand beim Öffnen wiederherstellen: Füge im UserForm_Initialize-Event folgenden Code hinzu:

    Private Sub UserForm_Initialize()
       Me.ToggleButton1.Value = Range("Tabelle1!Z1").Value
       Me.ToggleButton1.Caption = IIf(Me.ToggleButton1.Value, "nein", "Ja")
    End Sub

Häufige Fehler und Lösungen

  • Fehler: ToggleButton zeigt falschen Zustand an:

    • Stelle sicher, dass die ControlSource richtig gesetzt ist und dass die Zelle den aktuellen Zustand speichert.
  • Fehler: Caption und BackColor ändern sich nicht beim Öffnen:

    • Überprüfe, ob der Code im UserForm_Initialize korrekt implementiert ist.

Alternative Methoden

Eine weitere Möglichkeit, den Zustand eines ToggleButtons zu speichern, ist die Verwendung von globalen Variablen oder das Speichern in einer Datenbank, falls du eine komplexere Anwendung planst. Diese Methoden sind jedoch komplexer und erfordern zusätzliche Programmierkenntnisse.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Funktionalität eines ToggleButtons erweitern kannst:

Private Sub ToggleButton1_Click()
    If Me.ToggleButton1.Value Then
        Me.ToggleButton1.Caption = "Aktiv"
        Range("A1").Value = "Der Button ist aktiv."
    Else
        Me.ToggleButton1.Caption = "Inaktiv"
        Range("A1").Value = "Der Button ist inaktiv."
    End If
End Sub

In diesem Beispiel wird der Zustand des ToggleButtons auf einer anderen Zelle angezeigt.


Tipps für Profis

  • Verwende die ControlSource-Eigenschaft, um ToggleButtons effizient zu steuern und ihren Zustand zu speichern.
  • Nutze die UserForm_Initialize-Methode, um alle Steuerelemente beim Öffnen der UserForm korrekt einzustellen.
  • Experimentiere mit verschiedenen RGB-Farben, um deine ToggleButtons visuell ansprechender zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich mehrere ToggleButtons verwalten?
Du kannst mehrere ToggleButtons hinzufügen und für jeden einen eigenen Click-Event definieren oder eine Schleife verwenden, um den Zustand zu prüfen.

2. Was mache ich, wenn der ToggleButton nicht reagiert?
Überprüfe die Zuordnung der ControlSource und stelle sicher, dass das VBA-Modul entsprechend aktiviert ist.

3. Gibt es Unterschiede zwischen Excel-Versionen?
Ja, einige Funktionen können je nach Excel-Version variieren. Achte darauf, dass du die richtige Version nutzt, insbesondere bei VBA-Features.

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