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

Eingabeprüfung - Wert ungleich ""

Forumthread: Eingabeprüfung - Wert ungleich ""

Eingabeprüfung - Wert ungleich ""
Albert
Hallo Leute,
ich verwende folgenden Code, um bei unserer Inventur die Zählmengen via Dialog zu erfassen.
Sub Erstzählung_AP1()
Dim Zeile As Long
Dim C As Variant
Dim intR As Integer
intR = MsgBox("Achtung, sie haben den ersten Arbeitsplatz für die Erstzählung ausgewählt!  _
Ist das korrekt?", _
vbYesNo + vbQuestion, "Abfrage")
If intR = 6 Then
Do Until EingabeNr$ = "Ende"
EingabeNr$ = InputBox("TE-Nummer erfassen! Zum Beenden Ende eintippen", "Erstzählung AP1")
If EingabeNr$  "Ende" Then
If IsNumeric(EingabeNr$) And Len(EingabeNr$) > 6 Then
Set C = Range("B1:B5000").Find(EingabeNr$, LookIn:=xlValues)
If Not C Is Nothing Then
EingabeMenge = InputBox("Menge eingeben", EingabeNr$)
Cells(C.Row, 11).Value = EingabeMenge
xxx
Else
ExecuteExcel4Macro ("SOUND.PLAY(, ""I:\Neues Inventurprogramm\BesteTeufelslache.wav"")") _
End If
End If
End If
Loop
End If
If intR = 7 Then
MsgBox ("Erfassung wird nicht gestartet!")
End If
End Sub
Ich hab an der Stelle im Code zu meiner Frage drei xxx gemacht. An dieser Stelle bräuchte ich eine Prüfung, ob in den Dialog ein Wert eingefügt wurde.
Des Weiteren steht im Code > 6 Then (fünf Zeilen weiter oben). Hier erwartet der Dialog eine Zahl, die größer sechs Zeichen ist. Weiß von euch jemand, wie eine Erweiterung aussehen könnte, wenn auch noch geprüft wird, ob die Eingabe mit einer "8" beginnt.
Ich dank euch für eine Mühe.
LG
Albert
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Nachfragen,
25.11.2011 16:02:22
Reinhard

Hallo Albert,
entweder du hast da globale Variablen oder du benutzt kein Option Explicit.
Letzteres ist auf jeden Fall von Übel.
Breche die Codezeilen selbst um bevor du sie hier zeigst.
Was ich meine siehst du wenn du deinen Code hier rauskopierst und im Editor einfügst.
Mich irritiert das Leerzeichen zwischen ExecuteExcel4Macro und der Klammer, m.E. ist da was  _
faul *ungetestetes Bauchgefühl*
Auch ungetestet, deckst du mit =6 und =7 alles ab was intR werden kann?
If IsNumeric(EingabeNr$) And Len(EingabeNr$) > 6 Then
If left(EingabeNr$)="8" Then
[oder in die erste IF einfügen mit AND dabei]
Gruß
Reinhard

Anzeige
If EingabeMenge <> "" Then ...
25.11.2011 19:07:26
Matthias
Hallo
Du willst prüfen, ob die Eingabemenge ungleich leer ist?
Hier als Beispiel mit der aktiven Zelle: (Zelladresse bitte anpassen)
Hier wird beides abgedeckt. Zum Einen der Klick auf "Abbrechen", sowie der Klick auf "ok" ohne Eingabe in den Dialog
Die Eingabe von Leerzeichen wird durch Trim() ausgeglichen.
Option Explicit
Sub ml()
Dim EingabeMenge$
EingabeMenge = InputBox("bitte hier Menge eingeben", "EingabeMenge")
If StrPtr(EingabeMenge) = 0 Then 'Abbrechen gedrückt
MsgBox "es wurde Abbrechen gedrückt"
Exit Sub
Else
If EingabeMenge  "" And IsNumeric(EingabeMenge) Then
ActiveCell.Value = Trim(EingabeMenge) 'Trim()=wenn Leerzeichen eigegeben werden
Else
MsgBox "es wurde keine gültige Menge eingegeben"
End If
End If
End Sub
Gruß Matthias
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Eingabeprüfung in Excel VBA - Wert ungleich ""


Schritt-für-Schritt-Anleitung

Um in Excel VBA zu prüfen, ob ein Wert ungleich einem bestimmten Wert ist, kannst du die folgende Struktur verwenden. Hier ist ein einfaches Beispiel, um die Eingabemenge zu überprüfen und sicherzustellen, dass sie ungleich leer ist:

Sub EingabePruefung()
    Dim EingabeMenge As String
    EingabeMenge = InputBox("Bitte Menge eingeben:")

    If EingabeMenge <> "" Then
        MsgBox "Eingabe: " & EingabeMenge
    Else
        MsgBox "Die Eingabe darf nicht leer sein."
    End If
End Sub

In diesem Beispiel wird die Eingabe mit dem <> Operator überprüft, um zu sehen, ob sie ungleich einem leeren String ist.


Häufige Fehler und Lösungen

Ein häufiges Problem ist, dass der Benutzer die Eingabe abbricht oder nur Leerzeichen eingibt. Hier sind einige Lösungen:

  1. Abbrechen-Taste: Wenn der Benutzer auf Abbrechen klickt, gibt InputBox einen leeren String zurück. Du kannst dies mit StrPtr überprüfen:

    If StrPtr(EingabeMenge) = 0 Then
       MsgBox "Eingabe abgebrochen."
    End If
  2. Leerzeichen ignorieren: Verwende Trim(), um sicherzustellen, dass Leerzeichen nicht als gültige Eingabe zählen.

    If Trim(EingabeMenge) <> "" Then
       ' Gültige Eingabe
    End If

Alternative Methoden

Neben der Verwendung von InputBox gibt es auch andere Methoden zur Eingabeprüfung. Du kannst Formulare verwenden, um eine benutzerfreundliche Oberfläche zu erstellen. Hier ist eine kurze Übersicht:

  • UserForms: Erstelle ein Formular mit Textfeldern und Schaltflächen, um die Benutzerinteraktion zu verbessern.
  • Datenvalidierung: Nutze die Datenvalidierungsoptionen in Excel, um sicherzustellen, dass nur gültige Werte in Zellen eingegeben werden.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Eingabeprüfung umsetzen kannst:

  1. Zahlen mit Bedingungen: Wenn du sicherstellen möchtest, dass die Eingabe eine Zahl ist und mit einer bestimmten Ziffer beginnt:

    If IsNumeric(EingabeMenge) And Left(EingabeMenge, 1) = "8" Then
       ' Gültige Eingabe
    Else
       MsgBox "Die Eingabe muss eine Zahl sein, die mit 8 beginnt."
    End If
  2. Eingabe in eine bestimmte Zelle: Du kannst auch die Eingabe direkt in eine bestimmte Zelle schreiben:

    If EingabeMenge <> "" Then
       Range("A1").Value = EingabeMenge
    End If

Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich, alle Variablen zu deklarieren, was Fehler reduziert.
  • Schreibe sauberen und lesbaren Code: Breche lange Codezeilen um und nutze Kommentare, um die Struktur deines Codes klarer zu machen.
  • Testen: Teste deinen Code gründlich, um sicherzustellen, dass alle möglichen Eingaben richtig verarbeitet werden.

FAQ: Häufige Fragen

1. Wie prüfe ich, ob ein Wert ungleich einer Zahl ist? Verwende den <> Operator. Beispiel:

If Wert <> 5 Then
    ' Wert ist ungleich 5
End If

2. Was ist der Unterschied zwischen <> und != in VBA? In VBA wird <> als ungleich Zeichen verwendet. != ist in VBA nicht gültig und führt zu einem Fehler.

3. Wie kann ich sicherstellen, dass die Eingabe nur Zahlen sind? Verwende die Funktion IsNumeric(), um dies zu überprüfen:

If IsNumeric(Eingabe) Then
    ' Eingabe ist eine Zahl
End If

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