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

Forumthread: Mit InputBox mehrere Dinge gleichzeitig abfragen ?

Mit InputBox mehrere Dinge gleichzeitig abfragen ?
Ingo
Huhu :)
Ich nutze einen VBA-Code, um Daten einer Excel-Tabelle in eine Text-Datei zu schreiben.
Dabei sind im Text mehrere Variablen, die ich einzeln per Input-Box abfrage.
Kann man eigentlich auch mehrere Variablen gleichzeiti mit einer
einzigen InputBox abfragen ?
Ich meine also eine InputBox, wo ich dann sozusagen
mehrere Felder auszufüllen habe.
Grup
Ingo
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mit InputBox mehrere Dinge gleichzeitig abfragen ?
Hajo_Zi
Hallo Ingo
falls es nur um True und False geht kannst Du dazu den Excel Assi benutzen. Ansonsten nur über Userform.


AW: Mit InputBox mehrere Dinge gleichzeitig abfragen ?
Nepumuk
Hallo Ingo,
nein, das geht nicht. Aber dafür gibt es das Userform. Wenn du etwas konkreter wirst, können wir dir eine Beispielmappe erstellen.
Gruß
Nepumuk
Anzeige
OK, hier mal etwas konkreter :-)
Ingo
Hallo nochmal
Hier erstmal der VBA-Code:


Sub Export__Komplett()
   Dim iFile As Integer
   Dim iRow As Integer
   Dim iAnz As Integer
   Dim As Integer
   Dim petFile As String
   Dim Artikel_Zurück As String
   Dim Artikel_Vor As String
   Artikel_Zurück = InputBox("vorheriger Artikel ?", "vorheriger Artikel ?", "Wie heisst der vorherige Artikel ?")
   Artikel_Vor = InputBox("nächster Artikel ?", "nächster Artikel ?", "Wie heiist der nächste Artikel ?")
   iFile = FreeFile
   petFile = InputBox("Dateiname ?", "Dateiname ?", "XXX.shtml")
   Open "D:\SPACEart\Bilder-Rename\" & petFile For Output As iFile
   iRow = ActiveCell.Row
     Print #iFile, "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">"
     Print #iFile, ""
     Print #iFile, "<html>"
     Print #iFile, "<head>"
     Print #iFile, ""
Wie mann im Code sehen kann, gibts da ja nun 3 Input-Boxen.
Und diese gehen ja beim Ausführen des Codes ja nacheinander auf und fragen die entsprechenden Daten ab.
Nun hätte ich sozusagen eine "große" InputBox (oder so),
in die ich alle diese Daten gleichzeitig eingeben kann.
So nach dem Muster:
___________________________________________________________________
|
| Wie heisst der vorherige Artikel ? |Feld für die Eingabe|
|
|
| Wie heisst der vorherige Artikel ? |Feld für die Eingabe|
|
|
| Dateiname ? |Feld für die Eingabe|
|
___________________________________________________________________
Geht das ?
Gruß
Ingo

Anzeige
WUNDEBAR !!!
Ingo
Lieber Nepumuk
Mit Deiner Hilfe und auch vder Hilfe von den anderen hier,
ist mein tägliches Arbeitsaufkommen für das Einstellen neuer Artikel
in meinen Online-Shop nun wesentlich gekürtzt worden.
Ich (und meine Freundin) danken es Euch !!
Gruß
Ingo
Anzeige
AW: Mit InputBox mehrere Dinge gleichzeitig abfragen ?
Thorsten
Hi Ingo
Wenn 2 Variablen den Wert aus einer Inputbox erhalten sollen, geht das nur, wenn es ausreicht, dass das Ergebnis aus Inputbox "nur" einen Zusatz enthält.
Ergebnis Inputbox = "irgendwas"
Variable1 = "irgendwas" & " zusatz1" ergibt "irgendwas zusatz1"
Variable2 = "irgendwas" & " zusatz2" ergibt "irgendwas zusatz2"
Wenn aber 2 Variablen komplett unterschiedliche Werte erhalten sollen, dan benötigst Du auch zwei Inbutboxen.
Ergebnis Inputbox = "irgendwas"
Variable1 = "irgendwas" ergibt "irgendwas"
Variable2 = "irgendwas anderes" ergibt geht nicht, weil Inputbox NICHT "irgendwas anderes" enthält
Verstanden? :-)
Ciao
Thorsten
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. 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.
  2. 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“).
  3. 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
  4. 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.

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