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

Forumthread: Inputbox Eingabe prüfen

Inputbox Eingabe prüfen
03.06.2007 17:27:13
Roger
Hallo Zusammen,
ich habe folgendes Makro:

Sub test()
Dim Eingabe As String
Eingabe = ""
Do Until Eingabe  ""
Eingabe = InputBox("Bitte geben Sie etwas ein:", Eingabe)
If Eingabe  "" Then
If IsDate(Eingabe) Then
Range("A1") = Eingabe
Else
MsgBox ("Falsche Eingabe")
Eingabe = ""
End If
End If
Loop
Range("b2") = "Ende"
End Sub


Das Makro lässt bei der Eingabe nur das Datumformat zu, genau das möchte ich aber ändern:
Einmal darf die Eingabe nur Zeichen enthalten die für einen Dateinamen gültig ist.
Bei einer anderen Eingabe wäre es von Vorteil wenn die eingegebene Zahl nicht grösser ist als 2000.
Wie kann ich dass mit einfachen Mitteln sicherstellen?
Wäre schön wenn mir jemand helfen könnte.
Gruss Roger

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inputbox Eingabe prüfen
03.06.2007 17:42:00
Hajo_Zi
Hallo Roger,
wonach richtet sich das ob Text oder Zahl (Datum vor dem 22.06.1905)?

AW: Inputbox Eingabe prüfen
03.06.2007 17:57:00
Roger
Hallo Hajo,
wie meinst Du?
Das Makro das ich gezeigt habe dient als Beispiel!
Ich brauche keine Datumsprüfung, sondern zwei andere Prüfungen.
Im ersten Fall sollte nur einen Eingabe zugelassen werden, die später auch für die Dateibezeichnung verwendet werden kann.
Der Name darf also kein / \ * : " > Im zweiten Fall darf nur eine ganze Zahl eingegeben werden die nicht grösser ist als 2000.
Hoffentlich versteht Du nun was ich meine.
Danke aber schon mal für die Antwort.

Anzeige
Eingabe prüfen
03.06.2007 18:04:00
Roger
Ups die Frage ist natürlich noch offen

AW: Inputbox Eingabe prüfen
03.06.2007 17:42:00
Alsatian
If Eingabe Range("A1") = Eingabe
Else
MsgBox ("Falsche Eingabe")
Eingabe = ""
End If
If Instr(Eingabe,".") > 0 Then 'stellt zumindest sicher das *.* im Feld steht
Range("A1") = Eingabe
Else
MsgBox ("Falsche Eingabe")
Eingabe = ""
End If

Anzeige
AW: Inputbox Eingabe prüfen
03.06.2007 18:01:50
Roger
Hallo Alsatian,
danke für Deine Antwort.
Beim ersten Beispiel kann ich aber nach wie vor Text eingeben.
Der Punkt im zweiten muss nicht gefiltert werden weil ich die Endung nachträglich ansetze ;O)
Hast Du noch eine Idee?
Würde mich auf eine Antwort freuen.

AW: Inputbox Eingabe prüfen
03.06.2007 18:20:21
Josef
Hallo Roger,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub dateiname()
Dim strFileName As String

strFileName = Application.InputBox("Dateiname:", "Dateiname", Type:=2)

If Not IsValidFileName(strFileName) Then
    MsgBox "Der Dateiname ist ungültig!"
    Exit Sub
End If

MsgBox strFileName

End Sub

Public Function IsValidFileName(ByVal strName As String) As Boolean
Dim objRegExp As Object

Set objRegExp = CreateObject("vbscript.regexp")

With objRegExp
    .Global = True
    .Pattern = "^[^\/\\:\*\?\|\""""]{1,20}$"
    .IgnoreCase = True
    IsValidFileName = .test(strName)
End With

Set objRegExp = Nothing

End Function


Sub Ganzzahl_kleiner_2000()
Dim intNumber As Integer

intNumber = Application.InputBox("Zahl:", "Zahl", 1, Type:=1)

If intNumber < 0 Or intNumber > 2000 Then
    MsgBox "Zahlungültig!"
    Exit Sub
End If

MsgBox CStr(intNumber)

End Sub

Gruß Sepp

Anzeige
3 Volltreffer
03.06.2007 18:53:00
Roger
Hallo Sepp,
was soll ich sagen?
Alle drei Sachen funktionieren einwandfrei!
Herzlichen Dank, Du hast mir einmal mehr weitergeholfen.
Irgendwann helfe ich vielleicht auch einmal Dir, so in etwa zwanzig Jahren ;O)
Aber eine kleine Frage habe ich noch zu dem Teilmakro Sub Ganzzahl_kleiner_2000()
Ist es hier auch möglich die Eingabe nicht auf den Wert 2000 zu begrenzen, sondern auf 5 stellen?
Du hast den Defaultwert auf 1 gesetzt, wenn ich nichts eingebe kommt eine Fehlermeldung:
Die eingegebene Formel enthält einen Fehler. Ich weiss Du fängst diesen Fall nicht ab, macht das keinen Sinn?
Besten Dank Sepp für Deine Geduld.
Gruss Roger

Anzeige
AW: 3 Volltreffer
03.06.2007 19:22:17
Josef
Hallo Roger,
das könnte man so lösen.
Sub Ganzzahl_mit_max_5_Stellen()
Dim vRet As Variant

vRet = Application.InputBox("Zahl:", "Zahl", 1, Type:=2)

If vRet = "Falsch" Then Exit Sub

If IsNumeric(vRet) Then
    vRet = Clng(vRet)
Else
    Exit Sub
End If

If vRet < 0 Or vRet > 99999 Then
    MsgBox "Zahlungültig!"
    Exit Sub
End If

MsgBox CStr(vRet)

End Sub

Gruß Sepp

Anzeige
Besten Dank Sepp !! (oT)
03.06.2007 19:42:04
Roger
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Eingaben in Excel mit Inputbox prüfen


Schritt-für-Schritt-Anleitung

Um Eingaben in Excel mithilfe einer Inputbox zu prüfen, kannst du ein Makro in VBA erstellen. Hier ist ein einfaches Beispiel, das zeigt, wie du eine Eingabe validieren kannst:

  1. Öffne Excel und gehe zu EntwicklertoolsVisual Basic.
  2. Füge ein neues Modul hinzu.
  3. Kopiere den folgenden Code in das Modul:
Sub test()
    Dim Eingabe As String
    Eingabe = ""

    Do Until Eingabe <> ""
        Eingabe = InputBox("Bitte geben Sie etwas ein:", Eingabe)

        If Eingabe <> "" Then
            If IsValidFileName(Eingabe) Then
                Range("A1") = Eingabe
            Else
                MsgBox ("Falsche Eingabe")
                Eingabe = ""
            End If
        End If
    Loop

    Range("B2") = "Ende"
End Sub

Function IsValidFileName(ByVal strName As String) As Boolean
    Dim objRegExp As Object
    Set objRegExp = CreateObject("vbscript.regexp")

    With objRegExp
        .Global = True
        .Pattern = "^[^\/\\:\*\?\|\""""]{1,20}$"
        .IgnoreCase = True
        IsValidFileName = .Test(strName)
    End With

    Set objRegExp = Nothing
End Function
  1. Schließe den VBA-Editor und führe das Makro aus.

In diesem Beispiel wird überprüft, ob die Eingabe einen gültigen Dateinamen darstellt. Du kannst die Funktion IsValidFileName anpassen, um weitere Anforderungen zu berücksichtigen.


Häufige Fehler und Lösungen

  1. Fehler: "Falsche Eingabe" erscheint immer

    • Lösung: Stelle sicher, dass dein regulärer Ausdruck in der Funktion IsValidFileName korrekt ist und die Anforderungen erfüllt.
  2. Fehler: Eingabe wird nicht akzeptiert

    • Lösung: Überprüfe, ob die Eingabe nicht leer ist und die Bedingungen in der If-Anweisung erfüllt sind.
  3. Fehler: Makro lässt keine Eingabe zu

    • Lösung: Vergewissere dich, dass die Schleife korrekt implementiert ist und die Bedingungen für das Verlassen der Schleife stimmen.

Alternative Methoden

Du kannst auch die Application.InputBox-Methode verwenden, um Eingaben zu prüfen. Diese Methode ermöglicht es dir, mehrere Typen von Eingaben zu definieren, z.B. nur Zahlen:

Dim Zahl As Variant
Zahl = Application.InputBox("Bitte geben Sie eine Zahl ein:", Type:=1)

If Zahl < 0 Or Zahl > 2000 Then
    MsgBox "Zahl ungültig!"
Else
    MsgBox "Eingabe: " & Zahl
End If

Diese Methode ist besonders nützlich, wenn du eine Zahl innerhalb eines bestimmten Bereichs annehmen möchtest.


Praktische Beispiele

  1. Prüfen auf gültige Dateinamen:

    • Verwende die oben gezeigte Funktion IsValidFileName, um sicherzustellen, dass die Eingabe keine ungültigen Zeichen enthält.
  2. Zahleneingabe mit maximaler Stellenanzahl:

    • Hier ist ein Beispiel, das die Eingabe auf eine Zahl mit maximal 5 Stellen prüft:
Sub Ganzzahl_mit_max_5_Stellen()
    Dim vRet As Variant
    vRet = Application.InputBox("Zahl:", "Zahl", Type:=2)

    If vRet = "Falsch" Then Exit Sub

    If IsNumeric(vRet Then
        vRet = CLng(vRet)
        If vRet < 0 Or vRet > 99999 Then
            MsgBox "Zahl ungültig!"
        Else
            MsgBox CStr(vRet)
        End If
    End If
End Sub

Tipps für Profis

  • Verwende reguläre Ausdrücke, um komplexere Validierungsregeln zu implementieren.
  • Setze Standardwerte in InputBox, um die Benutzerführung zu verbessern.
  • Überlege, wie du Ausnahmen und Fehlerbehandlungen implementieren kannst, um das Benutzererlebnis zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Validierungen in einer Inputbox durchführen?
Du kannst mehrere Bedingungen innerhalb der Schleife kombinieren und die Eingabe entsprechend validieren.

2. Gibt es eine Möglichkeit, die Eingabe direkt in einer Zelle zu validieren?
Ja, du kannst Datenüberprüfung in Excel verwenden, um Eingaben in einer Zelle direkt zu validieren.

3. Wie kann ich sicherstellen, dass nur Zahlen in einer Inputbox eingegeben werden?
Verwende Application.InputBox mit dem Typ 1, um nur numerische Eingaben zuzulassen.

4. Kann ich die Eingaben auch auf bestimmte Zeichen beschränken?
Ja, du kannst dafür reguläre Ausdrücke in einer benutzerdefinierten Funktion verwenden, um die Eingaben zu filtern.

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