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

Forumthread: inputbox OK ohne Eingabe

inputbox OK ohne Eingabe
Peter
Hallo Zusammen,
bin VBA Neuling und habe folgendes Problem:
Bei einer Inputbox habe ich es endlich geschafft, dass bei Abbrechen die Box einfach geschlossen wird
und nichts weiter passiert.
Wenn man aber auf OK clickt ohne einen wert einzugeben kommt "Laufzeitfehler 13".
Ist sicher ganz einfach, aber ich komm nicht drauf.
Vielen Dank für Eure Hilfe!
Hier der Code:

Private Sub dm1_1_Click()
Dim i1 As Double
If dm1_1.Value = True Then
i1 = Application.InputBox("Bitte Menge eingeben:", "Menge")
If Not IsNumeric(i1) Then Exit Sub
End If
menge1_1 = i1
End Sub

Anzeige

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

Betreff
Benutzer
Anzeige
AW: inputbox OK ohne Eingabe
12.05.2011 22:33:21
CitizenX
Hallo,
Private Sub dm1_1_Click()
Dim vntInput As Variant
If dm1_1.Value = True Then
vntInput = InputBox("Bitte Menge eingeben:", "Menge")
If CStr(vntInput) = vbNullString Then Exit Sub
MsgBox "und läuft...."
End If
menge1_1 = vntInput
End Sub

Grüße
Steffen
Anzeige
AW: inputbox OK ohne Eingabe
12.05.2011 22:41:14
Peter
Hallo Steffen,
Vielen Dank!
Ich schnalls zwar nicht, aber es funktioniert.
Viele Grüsse
Peter
AW: inputbox OK ohne Eingabe
12.05.2011 22:53:09
Gerd
Hallo Peter,
falls Du nur Zahlen holen möchtest:
Private Sub dm1_1_Click()
Dim vntReturn As Variant
Dim menge1_1 As Double
vntReturn = Application.InputBox("Bitte Menge eingeben:", "Menge", Type:=1)
If TypeName(vntReturn) = "Boolean" Then Exit Sub
menge1_1 = CDbl(vntReturn)
End Sub
Gruß Gerd
Anzeige
;
Anzeige

Infobox / Tutorial

InputBox in Excel VBA: Fehlerbehebung und Optimierung


Schritt-für-Schritt-Anleitung

Um eine InputBox in Excel VBA zu verwenden und Laufzeitfehler zu vermeiden, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:
Private Sub dm1_1_Click()
    Dim vntInput As Variant
    If dm1_1.Value = True Then
        vntInput = InputBox("Bitte Menge eingeben:", "Menge")
        If CStr(vntInput) = vbNullString Then Exit Sub
        MsgBox "Eingegebene Menge: " & vntInput
    End If
End Sub
  1. Schließe den VBA-Editor und teste den Code, indem du das Makro ausführst.

Häufige Fehler und Lösungen

  • Laufzeitfehler 13: Dieser Fehler tritt auf, wenn ein Wert nicht in den erwarteten Datentyp umgewandelt werden kann. Um das zu verhindern, stelle sicher, dass du die Eingabe mit CStr() überprüfst, bevor du sie weiterverwendest.

  • Nichts passiert bei OK-Klick: Wenn die Eingabe leer bleibt, wird das Makro ohne Fehlermeldung beendet. Verwende If CStr(vntInput) = vbNullString Then Exit Sub, um dies zu handhaben.


Alternative Methoden

Eine alternative Methode zur Eingabe von Zahlen in Excel VBA ist die Verwendung von Application.InputBox, die zusätzlich den Typ der Eingabe überprüft. Hier ein Beispiel:

Private Sub dm1_1_Click()
    Dim vntReturn As Variant
    vntReturn = Application.InputBox("Bitte Menge eingeben:", "Menge", Type:=1)
    If TypeName(vntReturn) = "Boolean" Then Exit Sub
    MsgBox "Eingegebene Menge: " & CDbl(vntReturn)
End Sub

Hierbei wird der Typ der Eingabe auf "Zahl" beschränkt, was die Eingabe von ungültigen Werten verhindert.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie InputBox in verschiedenen Szenarien eingesetzt werden kann:

  1. Eingabe einer Menge:

    • Verwende die InputBox, um den Benutzer nach einer Menge zu fragen und diese in einer Variablen zu speichern.
  2. Überprüfung der Eingabe:

    • Implementiere eine Überprüfung, um sicherzustellen, dass der Benutzer eine Zahl eingibt, bevor du mit weiteren Berechnungen fortfährst.
Private Sub dm1_1_Click()
    Dim menge1_1 As Double
    Dim vntInput As Variant
    vntInput = Application.InputBox("Bitte Menge eingeben:", "Menge", Type:=1)
    If TypeName(vntInput) = "Boolean" Then Exit Sub
    menge1_1 = CDbl(vntInput)
    MsgBox "Eingegebene Menge: " & menge1_1
End Sub

Tipps für Profis

  • Fehlerbehandlung: Verwende On Error Resume Next, um Laufzeitfehler elegant zu handhaben und den Code stabiler zu machen.
  • Benutzerfreundliche Meldungen: Stelle sicher, dass die Meldungen für den Benutzer klar sind, um die Benutzererfahrung zu verbessern.
  • Eingabevalidierung: Verwende zusätzliche Validierungslogik, um sicherzustellen, dass die Eingaben den erwarteten Kriterien entsprechen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden?
Verwende die Application.InputBox mit dem Parameter Type:=1, um sicherzustellen, dass nur numerische Eingaben akzeptiert werden.

2. Was passiert, wenn der Benutzer die Eingabe abbricht?
Wenn der Benutzer die Eingabe abbricht, gibt die InputBox False zurück. Achte darauf, dies in deinem Code zu behandeln, um Laufzeitfehler zu vermeiden.

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