Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige