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

wieder zur Userform zurückkehren

Forumthread: wieder zur Userform zurückkehren

wieder zur Userform zurückkehren
29.02.2008 14:58:00
Jonatan
Hallo,
habe folgendes Problem:
In einer Userform habe ich zwei Checkboxes. Wenn beide nicht angecklickt werden, kommt eine msgbox hoch mit der Meldung: Eine Checkbox auswählen.
Dann klicke ich auf ok und das Programm läuft einfach weiter ab, ohne dass ich wieder zu den checkboxes auf der Userform zurückgehen kann.
Was für einen Code muss ich nach der Msgbox eingeben, dass ich wieder zurück zur Userform kann und die Checkboxen nochmals aktivieren kann?
Vielen Dank für eure Hilfe
Gruß Jonatan

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: wieder zur Userform zurückkehren
29.02.2008 15:30:00
mumpel
Hallo!
Beispiel:

Private Sub CommandButton1_Click()
If Checkbox1.Value = True Then
Dein Code
ElseIf Checkbox2.Value = True Then
Dein Code
Else
MsgBox "Bitte erst eine Auswahl treffen!", vbinforamtion + vbOkOnly, "Hinweis"
End If
End Sub


Anzeige
Nachtrag
29.02.2008 15:33:43
mumpel
Wichtig ist also, dass der auszuführende Code nicht in einem externen Makro sthet, sondern in der userform (siehe Beispiel). Solange keine Checkbox gewählt wurde, bleibt die Userform geöffnet.

AW: Nachtrag
29.02.2008 15:44:24
Jonatan
hmm...
Mein Problem ist, dass ich die Prozedur nicht über die Checkboxes abschließe.
Das heißt, ich klicke auf einen ok button, dann wird geprüft, ob in den checkboxes was drin steht. Wenn eben nichts drinsteht, kommt die msgbox als Hinweis und dann würde ich eben gerne wieder die Prozedur, die durch den OK button ausgelöst wurde abbrechen und zurück zur UserForm gehen.
Trotzdem vielen Dank für deine Antwort
Gruß Jonatan

Anzeige
AW: Nachtrag
29.02.2008 15:57:50
mumpel
Schließt Du die Userform, wenn Du auf den OK-Button klickst? Das ist eigentlich nicht notwendig, wenn Du die If-Abfragen nach meinem Beispiel nutzt. Alternativ:
If Checkbox1.Value = False And Checkbox2.Value = False Then Useform1.Show: Exit Sub

AW: Nachtrag
03.03.2008 09:20:46
Jonatan
Hallo,
sorry, dass ich erst so spät zurückschreibe; jetzt funktioniert es jedenfalls einwandfrei. Ich kam leider nicht auf die simple Idee "exit Sub" einzugeben...
Gruß Jonatan
Anzeige
;
Anzeige

Infobox / Tutorial

Wieder zur Userform zurückkehren in Excel


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass Du nach dem Klicken eines OK-Buttons wieder zur Userform zurückkehrst, wenn keine Checkbox ausgewählt ist, kannst Du den folgenden VBA-Code verwenden:

Private Sub CommandButton1_Click()
    If Checkbox1.Value = True Or Checkbox2.Value = True Then
        ' Hier kommt Dein Code für den Fall, dass eine Checkbox ausgewählt wurde
    Else
        MsgBox "Bitte erst eine Auswahl treffen!", vbInformation + vbOkOnly, "Hinweis"
        ' Userform zeigen und Prozedur abbrechen
        UserForm1.Show
        Exit Sub
    End If
End Sub

Stelle sicher, dass der Code in der Userform und nicht in einem externen Makro steht. Dies ermöglicht es, die Userform offen zu halten, bis eine Auswahl getroffen wird.


Häufige Fehler und Lösungen

  1. Fehler: Die Userform schließt sich nach dem Klicken des OK-Buttons.

    • Lösung: Stelle sicher, dass Du den Code zum Schließen der Userform nicht in der CommandButton_Click-Prozedur hast. Verwende stattdessen Exit Sub, um die Routine zu beenden und die Userform offen zu halten.
  2. Fehler: Die MsgBox erscheint, aber die Userform bleibt nicht sichtbar.

    • Lösung: Nutze UserForm1.Show innerhalb der Else-Abfrage, um die Userform erneut anzuzeigen.

Alternative Methoden

Falls Du eine andere Herangehensweise bevorzugst, kannst Du auch eine Variable verwenden, um den Status der Checkboxen zu speichern und die Userform entsprechend zu steuern. Ein Beispiel:

Private Sub CommandButton1_Click()
    Dim isChecked As Boolean
    isChecked = Checkbox1.Value Or Checkbox2.Value

    If Not isChecked Then
        MsgBox "Bitte erst eine Auswahl treffen!", vbInformation + vbOkOnly, "Hinweis"
        Me.Show
        Exit Sub
    End If

    ' Weiterer Code hier
End Sub

Diese Methode hält den Code übersichtlich und vermeidet redundante Aufrufe der Userform.


Praktische Beispiele

Ein einfaches Beispiel könnte ein Formular zur Auswahl von Optionen sein, das die Benutzer auffordert, mindestens eine Checkbox auszuwählen. Hier ist ein Beispiel, das auf den oben genannten Lösungen basiert:

Private Sub CommandButton1_Click()
    If Not (Checkbox1.Value Or Checkbox2.Value) Then
        MsgBox "Bitte eine Checkbox auswählen!", vbInformation + vbOkOnly, "Hinweis"
        Me.Show
        Exit Sub
    End If
    ' Hier folgt der Code für die Verarbeitung der Auswahl
End Sub

In diesem Beispiel wird die Benutzerinteraktion klar geregelt, und die Userform bleibt geöffnet, bis eine gültige Auswahl getroffen wurde.


Tipps für Profis

  • Verwendung von UserForm.Hide: Wenn Du die Userform temporär ausblenden möchtest, ohne sie zu schließen, kannst Du Me.Hide verwenden und später wieder Me.Show aufrufen.

  • Verwende With-Anweisungen: Für lesbaren und effektiven Code kannst Du With-Anweisungen verwenden, um mehrere Eigenschaften einer Checkbox in einem Block zu setzen.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung in Deinem Code, um unerwartete Probleme zu vermeiden, insbesondere wenn Du mit Benutzereingaben arbeitest.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Userform immer sichtbar bleibt? Um die Userform sichtbar zu halten, stelle sicher, dass Du Exit Sub in Deiner Click-Prozedur verwendest, falls keine Checkbox ausgewählt wurde.

2. Was passiert, wenn ich die Userform schließe? Wenn Du die Userform schließt, wird die Prozedur beendet. Um zur Userform zurückzukehren, musst Du sie erneut mit UserForm1.Show aufrufen.

3. Kann ich mehrere Checkboxen abfragen? Ja, Du kannst beliebig viele Checkboxen abfragen, indem Du die Bedingungen im If-Statement entsprechend anpasst.

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