Mit der InputBox mehrere Eingaben gleichzeitig abfragen
Schritt-für-Schritt-Anleitung
Um in Excel VBA eine InputBox zu erstellen, die mehrere Eingabewerte gleichzeitig abfragt, benötigst du ein UserForm. Hier sind die Schritte, um dies zu erreichen:
-
Erstellen eines UserForms:
- Öffne den VBA-Editor mit
Alt + F11
.
- Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle
Einfügen
> UserForm
.
-
Gestalten des UserForms:
- Ziehe die benötigten TextBoxen für die Eingaben auf das UserForm. Du kannst die TextBoxen durch Ziehen und Ablegen aus den Werkzeugen hinzufügen.
- Füge Labels hinzu, um den Benutzern zu zeigen, welche Informationen sie eingeben sollen (z.B. „Vorheriger Artikel“, „Nächster Artikel“, „Dateiname“).
-
Code schreiben:
- Doppelklicke auf den „OK“-Button, um das Code-Fenster zu öffnen, und füge den folgenden Code hinzu:
Private Sub btnOK_Click()
Dim Artikel_Zurück As String
Dim Artikel_Vor As String
Dim petFile As String
Artikel_Zurück = txtVorherigerArtikel.Value
Artikel_Vor = txtNächsterArtikel.Value
petFile = txtDateiname.Value
' Hier kannst du den Code zum Speichern der Daten einfügen
' z.B. Print #iFile, ...
Unload Me
End Sub
-
UserForm aufrufen:
- Du kannst das UserForm mit folgendem Code aufrufen:
Sub ShowInputForm()
UserForm1.Show
End Sub
Häufige Fehler und Lösungen
-
Fehler: UserForm wird nicht angezeigt:
- Stelle sicher, dass du das UserForm mit
UserForm1.Show
aufrufst.
-
Fehler: Eingaben werden nicht gespeichert:
- Überprüfe, ob du die Werte korrekt aus den TextBoxen abholst.
-
Fehler: Mehrere InputBoxen erscheinen nacheinander:
- Das passiert, wenn du mehrere InputBoxen verwendest. Nutze stattdessen das UserForm für mehrere Eingaben.
Alternative Methoden
Wenn du keine UserForms verwenden möchtest, kannst du auch mehrere InputBoxen in einer Schleife abfragen. Dies ist jedoch weniger benutzerfreundlich.
Dim Artikel_Zurück As String
Dim Artikel_Vor As String
Dim petFile As String
Artikel_Zurück = InputBox("Bitte gib den vorherigen Artikel ein:")
Artikel_Vor = InputBox("Bitte gib den nächsten Artikel ein:")
petFile = InputBox("Bitte gib den Dateinamen ein:")
Diese Methode wird jedoch nicht als elegant angesehen, da der Benutzer mehrere Fenster nacheinander schließen muss.
Praktische Beispiele
Hier ist ein einfaches Beispiel für einen VBA-Code, der die Daten aus einem UserForm abruft und in eine Textdatei schreibt:
Sub Export__Komplett()
Dim iFile As Integer
Dim petFile As String
Dim Artikel_Zurück As String
Dim Artikel_Vor As String
' UserForm aufrufen
UserForm1.Show
' Hier wird der Dateiname definiert
petFile = "D:\SPACEart\Bilder-Rename\" & petFile
iFile = FreeFile
Open petFile For Output As #iFile
Print #iFile, "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">"
Print #iFile, "<html>"
' Weitere Daten aufbereiten...
Close #iFile
End Sub
Tipps für Profis
- Benutzerfreundlichkeit erhöhen: Verwende ComboBoxen, um die Eingaben zu beschleunigen.
- Daten validieren: Füge Validierungslogik hinzu, um sicherzustellen, dass die Eingaben korrekt sind, bevor sie gespeichert werden.
- Eingaben speichern: Überlege, die Eingaben in einer Tabelle zu speichern, um sie für zukünftige Einsätze wiederzuverwenden.
FAQ: Häufige Fragen
1. Kann ich die InputBox anpassen?
Ja, die InputBox selbst kann nicht angepasst werden, aber du kannst ein UserForm verwenden, um das Design und die Benutzererfahrung zu verbessern.
2. Ist es möglich, mehrere InputBoxen in einer Zeile anzuzeigen?
Nein, die Standard-InputBox von Excel kann nur eine Eingabe abfragen. Ein UserForm ist die beste Lösung, wenn du mehrere Eingaben benötigst.
3. Welche Excel-Version benötige ich für UserForms?
UserForms sind in allen modernen Versionen von Excel verfügbar, einschließlich Excel 2010 und höher.