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

Forumthread: ToggleButton umschaltung

ToggleButton umschaltung
28.08.2013 09:26:52
Valeri
Hallo Forum,
ich habe eine UserForm für das erstellen von Zeiterfassungsbelegen.
In dieser UserForm sind ein paar TextBoxen für die Zeiteingabe verteilt.
Für diese Zeiteingabe habe ich eine zweite UserForm erstellt die mittels doppelklick auf die TextBox geöffnet wird.
Auf dieser UserForm befinden sich viele ToggleButton die in zwei bereiche aufgeteilt sind, in Stunden (24 Button) und Minuten (60 Button).
Jetzt meine Frage:
Wie beckomme ich es hinn das wenn ich im Stundenbereich nur einen Butten anwählen kann, soll heißen wenn z.B. 06 gedrückt ist und ich jetzt doch den 07 Button drücke soll der 06 abgewählt werden?
Das gleiche soll im Bereich der Minuten Button möglich sein.
Zusätzlich wäre es schön wenn ich jetzt meine Auswahl getroffen habe z.B. ich habe den Button 07 (für 7 Uhr Morgens) gedrückt und den Button 14 (für 14 Min.), soll sich diese Userform schließen und in die TextBox aus der diese UserForm per Doppelklick gestartet wurde die Auswahl 07:14 eingetragen werden.
Ich hoffe ich habe euch jetzt nicht zugetextet ;-)
Danke schonmal für Eure Mühen!
Gruß Valeri

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ToggleButton umschaltung
28.08.2013 10:20:38
Klaus
Hi Valerie,
wenn z.B. 06 gedrückt ist und ich jetzt doch den 07 Button drücke soll der 06 abgewählt werden?

du könntest sehr aufwenig in jeder on-click Prozedur die Stati der anderen Buttons ändern. Aber warum nimmst du nicht einfach einen Rahmen mit Optionsfeldern (die kleinen Kreise mit dem schwarzem Punkt) ? Von denen lasst sich bereits voreingestellt nur eins gleichzeitig auswählen, das dürfte genau das sein was du willst.
Zusätzlich wäre es schön wenn ich jetzt meine Auswahl getroffen habe z.B. ich habe den Button 07 (für 7 Uhr Morgens) gedrückt und den Button 14 (für 14 Min.), soll sich diese Userform schließen und in die TextBox aus der diese UserForm per Doppelklick gestartet wurde die Auswahl 07:14 eingetragen werden.

Das ist prinzipiell einfach, musst nur einen String erstellen und an die Textbox übergeben. Entweder mit ganz vielen If's (einen pro Button / Optionsfeld) oder irgendwie eleganter.
Ohne deine Userform und deine Benennungen zu kennen poste ich dazu aber keinen Code.
Grüße,
Klaus M.vdT.

Anzeige
AW: ToggleButton umschaltung
28.08.2013 11:25:06
Valeri
Hallo Klaus,
ich habe das mit den Optionsfeldern probiert. Leider kann man nur ein Feld aktivieren, ich benötige aber mindestenz zwei.
Gruß Valeri

AW: ToggleButton umschaltung
28.08.2013 11:44:33
Klaus
Hallo Valerie,
du schreibst:
06 gedrückt ist und ich jetzt doch den 07 Button drücke soll der 06 abgewählt werden

den Rest habe ich mir zusammengereimt.
Ohne mehr Info kann man dir nicht helfen! Musterdatei? Welche Buttons gibt es, welche Buttons sind gleichzeitig möglich und welche nicht? Kannst du die Optionbuttons so gruppieren, dass es pro FRAME nur eine Auswahlmöglichkeit gibt, das wäre am einfachsten?
Grüße,
Klaus M.vdT.

Anzeige
AW: ToggleButton umschaltung
28.08.2013 15:15:18
Valeri
Hallo Klaus,
ich bin der Meinung das ich das schon ausreichend umschrieben habe. Ich habe auf einer Userform sowohl die Stundenbutton als auch die Minutenbutton, daraus möchte ich durch anwahl mit der Maus eine Uhrzeit bauen. Dies erforder selbstverständlich die anwahl zweier Butten, Stunden + Minuten. Die Datei kann ich leider nicht hochladen, eine Musterdate müsste ich noch bauen.
Hier mal ein Bild:
Userbild
Gruß Valeri

Anzeige
Nimm doch Optionbuttons (siehe Klaus)
28.08.2013 17:58:07
Matthias
Hallo
Hast Du es denn, wie von Klaus vorgschlagen mal mit Optionbuttons versucht?
Du brauchst nur 2 Frames einfügen
Die Stunden kommen ins Frame1
Die Minuten kommen ins Frame2
Wenn Du nun eine Stunde anklickst und später dann eine andere Stunde anklickst, wird die vorherige Stunde deaktiviert.
Genauso bei den Minuten.
Stunden und Minuten müssen nur in unterschiedlichen Frames untergebracht sein.
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ToggleButton Umschaltung in Excel UserForms


Schritt-für-Schritt-Anleitung

Um die Funktionalität eines ToggleButtons in einer UserForm zu implementieren, folge diesen Schritten:

  1. UserForm erstellen: Öffne Excel und erstelle eine neue UserForm, indem Du im VBA-Editor mit Alt + F11 arbeitest. Klicke mit der rechten Maustaste auf dein Projekt und wähle „UserForm einfügen“.

  2. ToggleButtons hinzufügen: Füge die ToggleButtons in deine UserForm ein. Du kannst dies tun, indem Du den Toolbox-Bereich öffnest und die gewünschten ToggleButtons auf die UserForm ziehst.

  3. VBA Code für die ToggleButtons: Klicke mit der rechten Maustaste auf einen ToggleButton und wähle „Code anzeigen“. Füge den folgenden Code hinzu, um sicherzustellen, dass immer nur ein Button in der Stunden- und Minutenkategorie ausgewählt werden kann:

    Private Sub ToggleButton1_Click()
        If ToggleButton1.Value Then
            ToggleButton2.Value = False
            ToggleButton3.Value = False
            ' Weitere ToggleButtons für Stunden
        End If
    End Sub
    
    Private Sub ToggleButton2_Click()
        If ToggleButton2.Value Then
            ToggleButton1.Value = False
            ToggleButton3.Value = False
            ' Weitere ToggleButtons für Stunden
        End If
    End Sub
  4. Werte übergeben: Um die Auswahl in die ursprüngliche TextBox zu übertragen, kannst Du den folgenden Code verwenden:

    Private Sub btnOK_Click()
        Dim Stunden As String
        Dim Minuten As String
    
        Stunden = "00" ' Standardwert
        Minuten = "00" ' Standardwert
    
        If ToggleButton1.Value Then Stunden = "07" ' Beispiel
        If ToggleButton2.Value Then Stunden = "08" ' Beispiel
    
        If ToggleButton4.Value Then Minuten = "14" ' Beispiel
        If ToggleButton5.Value Then Minuten = "30" ' Beispiel
    
        TextBox1.Value = Stunden & ":" & Minuten
        Unload Me
    End Sub
  5. UserForm schließen: Mit dem obigen Code wird die UserForm geschlossen und die Zeit in das Textfeld eingetragen.


Häufige Fehler und Lösungen

  • Fehler: ToggleButtons reagieren nicht.

    • Lösung: Überprüfe, ob die Enabled-Eigenschaft der ToggleButtons auf True gesetzt ist.
  • Fehler: Auswahl wird nicht in die TextBox übertragen.

    • Lösung: Stelle sicher, dass der Code zur Übertragung der Werte im richtigen Ereignis (z.B. bei einem Button-Klick) platziert ist.
  • Fehler: Mehr als ein ToggleButton bleibt ausgewählt.

    • Lösung: Überprüfe den Code auf korrekte Implementierung der Value-Eigenschaft.

Alternative Methoden

Falls Du mit ToggleButtons Schwierigkeiten hast, kannst Du auch Optionsfelder verwenden:

  1. Optionsfelder einfügen: Füge Optionsfelder in zwei separate Rahmen (Frames) ein, einen für Stunden und einen für Minuten.
  2. Einzelne Auswahl: Optionsfelder erlauben nur eine Auswahl innerhalb eines Rahmens, was die Bedienung vereinfacht.

Praktische Beispiele

Hier ein einfaches Beispiel, wie Du die ToggleButtons für Stunden und Minuten anordnen kannst:

Private Sub ToggleButtonHour_Click()
    ' Setze alle anderen Stunden auf False
    ToggleButton06.Value = False
    ToggleButton07.Value = False
    ' usw.
End Sub

Private Sub ToggleButtonMinute_Click()
    ' Setze alle anderen Minuten auf False
    ToggleButton14.Value = False
    ToggleButton30.Value = False
    ' usw.
End Sub

Tipps für Profis

  • Verwendung von Arrays: Um den Code übersichtlicher zu gestalten, kannst Du Arrays verwenden, um die ToggleButtons zu verwalten und ihre Zustände zu überprüfen.
  • Ereignisprozeduren: Nutze Ereignisprozeduren, um die Interaktivität zu verbessern und den Code zu optimieren.
  • Debugging: Verwende Debug.Print, um während der Entwicklung den Status der ToggleButtons zu überprüfen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere ToggleButtons gleichzeitig aktivieren? Das ist mit ToggleButtons nicht möglich, da sie dafür gedacht sind, nur eine Auswahl zuzulassen. Eine Alternative sind Optionsfelder, die in Gruppen verwendet werden können.

2. Kann ich die UserForm dynamisch erstellen? Ja, Du kannst UserForms auch zur Laufzeit erstellen und die ToggleButtons programmatisch hinzufügen.

3. Wo kann ich weitere Informationen zu VBA ToggleButtons finden? In der Microsoft-Dokumentation zu VBA und in Excel-Foren findest Du viele hilfreiche Tipps und Tricks zur Verwendung von ToggleButtons und UserForms.

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