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

Sub Unterbrechen und auf Eingabe warten

Forumthread: Sub Unterbrechen und auf Eingabe warten

Sub Unterbrechen und auf Eingabe warten
04.01.2016 20:22:46
Chatzebuseli
Hallo Liebe VBA Freunde
Ich schlag mich wider mal mit einem Problem rum.
Ich habe eine zimlich grosse PrivatSub für einen CommandButton.
In dieser werden diverse Bedingungen abgefragt. Die Daten werden, je nach zutreffen der Bedingungen, in verschidenen Tabellen eingetragen und füllt unterschiedliche Listboxen ab. Soweit so gut! Funktioniert wunderbar.
Jetzt benötige ich, jedoch nur wenn eine bestimmte konstelation von Bedingungen eintrifft und nur dann, noch eine Eingabe vom Benutzer.
Also müsste ich an dieser Stelle die Sub unterbrechen um dem Benutzer z.B. über eine andere Userform, einen Wert an diese Sub/Variabel zu übergeben und dann die Sub weiterlaufen lassen.
Ich möchte es NICHT über eine ImputBox machen da bei diesem Projekt die Benutzerfreundlichkeit an erster stelle steht.
Der Auftrag diese Projektes ist:
Die Daten müssen mit möglichst wenig Mausklicks und "Idiotensicher" bearbeitet werden können.(Was natürlich von mir als "Hobby Programiererin" sehr viel abverlangt.)
1.Frage geht das überhaubt?
2.Und wenn Ja. wie muss ich das anstellen?
E liebs Griessli
Chatzebuseli

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sub Unterbrechen und auf Eingabe warten
04.01.2016 20:39:08
Sepp
Hallo ?,
angenommen die Eingabe erfolgt in TextBox1 des UF, dann z. B. so.
Sub test()
Dim strInput As String


With UserForm1
  .Show
  strInput = .TextBox1
End With

If Len(strInput) Then MsgBox strInput

End Sub

Gruß Sepp

Anzeige
AW: Sub Unterbrechen und auf Eingabe warten
04.01.2016 20:41:01
ransi
Hallo,
Ich möchte es NICHT über eine ImputBox machen da bei diesem Projekt die Benutzerfreundlichkeit an erster stelle steht.
Versteh ich nicht.
Was gibt es einfacheres als eine Inputbox ?
Den User die Eingabe machen lassen und dann die Eingabe auf Plausibilität prüfen.
Wenn ja dann weiter, wenn nein dann neue Eingabe fordern oder irgendwas Anderes machen...
ransi

Anzeige
AW: Sub Unterbrechen und auf Eingabe warten
05.01.2016 14:16:51
Chatzebuseli
Hallo Ihr Beiden
Danke für Eure Hilfe.
Sepp:
Dein Vorschlag werde ich sicher weiterverfolgen. Mit ein bisschen Probieren, denke ich ist dass ein guter Ansatz.
Danke
ransi:
Grundsätlich gebe ich Dir Recht. In diesem Fall hier ist aber eine Imputbox wirklich nicht die wünschenswerte Option.
Darum stellte ich die Frage auch.
Dennoch Danke.
E liebs Griessli
Chatzebuseli
Anzeige
;
Anzeige

Infobox / Tutorial

Sub Unterbrechen und auf Eingabe warten


Schritt-für-Schritt-Anleitung

Um eine Subroutine in VBA zu unterbrechen und auf eine Benutzereingabe zu warten, kannst du eine UserForm verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Erstelle eine UserForm:

    • Gehe im VBA-Editor zu Einfügen > UserForm.
    • Füge eine TextBox (TextBox1) und einen Button (CommandButton1) hinzu.
  2. Füge den folgenden Code in das Modul ein:

    Sub test()
       Dim strInput As String
    
       With UserForm1
           .Show
           strInput = .TextBox1.Text
       End With
    
       If Len(strInput) Then
           MsgBox strInput
       End If
    End Sub
  3. Code für den Button hinzufügen:

    • Doppelklicke auf den Button in der UserForm und füge diesen Code hinzu:
      Private Sub CommandButton1_Click()
      Me.Hide
      End Sub
  4. Führe die Sub aus:

    • Starte die Sub test. Die UserForm öffnet sich, und du kannst einen Wert eingeben.

Häufige Fehler und Lösungen

  • Fehler: UserForm wird nicht angezeigt:

    • Stelle sicher, dass du .Show korrekt aufrufst. Überprüfe, ob die UserForm im richtigen Modul ist.
  • Fehler: Eingabe nicht erkannt:

    • Achte darauf, dass die TextBox korrekt benannt ist (TextBox1).
  • Fehler: Sub endet sofort:

    • Wenn du den Code für Me.Hide nicht im Button-Code hast, schließt die UserForm nicht korrekt.

Alternative Methoden

Wenn du keine UserForm verwenden möchtest, gibt es alternative Möglichkeiten, um Eingaben zu erhalten:

  • InputBox:

    • Obwohl es nicht gewünscht ist, könnte eine einfache InputBox als schnelle Lösung dienen.
      Dim strInput As String
      strInput = InputBox("Bitte gebe einen Wert ein:")
  • Datenüberprüfung in Excel:

    • Du kannst auch Zellen zur Eingabe verwenden und anschließend den Wert in deiner Sub abrufen.

Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du die UserForm in einem größeren Kontext verwenden kannst:

Sub MainProcedure()
    ' Deine Hauptprozedur hier
    ' ...

    ' Auf Benutzerwert warten
    test()

    ' Weitere Verarbeitung mit dem Benutzerwert
    ' ...
End Sub

Tipps für Profis

  • Verwende Arrays: Wenn du mehrere Eingaben benötigst, kannst du ein Array in der UserForm verwenden, um mehrere Werte zu speichern.
  • Benutzerfreundlichkeit verbessern: Gestalte deine UserForm ansprechend und informativ, um die Benutzerfreundlichkeit zu erhöhen und den Prozess reibungsloser zu gestalten.
  • Eingaben validieren: Implementiere eine Validierung für die Eingaben, um sicherzustellen, dass die Daten korrekt sind.

FAQ: Häufige Fragen

1. Frage
Wie viele Eingaben kann ich in der UserForm erfassen?
Du kannst beliebig viele TextBoxen hinzufügen, um mehrere Eingaben zu erfassen.

2. Frage
Kann ich die UserForm anpassen?
Ja, du kannst die Eigenschaften der UserForm und der Steuerelemente anpassen, um das Design zu verändern und die Benutzerfreundlichkeit zu verbessern.

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