Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
364to368
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
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kontrolle von Eingabe in TextBoxes

Kontrolle von Eingabe in TextBoxes
19.01.2004 14:09:25
UnitedArtist
Hallo,
in einer UserForm eingebundene TextBoxes sollen auf die korrekte Eingabe hin überprüft werden sobald ein CommandButton geclickt wird. Der VBA-Code wird nämlich untebrochen, falls eine Box freigelassen wurde, da dieser Wert nicht "" oder 0 sein darf. Wie kann ich diese Überprüfung programmieren? Der VBA-Code soll erst fortgesetzt werden sobald alle Felder korrekt gefüllt sind.
Vielen Dank...

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kontrolle von Eingabe in TextBoxes
19.01.2004 14:17:31
Lars
Hallo,
DU kannst mit einer Schleife alle Textfelder kontrollieren
For Each Control in UserForm.Controls
if (Control.Value = "" or Control.Value = 0) then
MsgBox "Füllen Sie erst alle Felder aus"
End if
next
... es ist aber besser, wenn du dann die Textfelder in einen Frame setzt, damit er nicht den Button überprüft. Sonst mußt du erst noch die COntrols identifizieren, ob es Textfelder oder was anderes sind.
Grüße Lars
AW: Kontrolle von Eingabe in TextBoxes
19.01.2004 14:43:26
UnitedArtist
Hallo Lars,
ich habe die 3 Textboxes (und zusätzlich 2 ListBoxes) in einem Frame. Leider erscheint die MessageBox sofort beim Makrostart. Ich kann aber weiterhin alle Felder leer lassen und beim Übertragen in das Excel-Doc. kommt dann eine Fehlermeldung, weil ein Feld leer geblieben ist. Ich möchte, daß das programm nicht fortfährt solange die felder nicht gefüllt sind. Dann soll ein CommandButton geclickt werden, die Prüfung soll erfolgen und bei positivem Ergebnis, fährt das Programm fort. Kann man das nicht in eine Schleife einbinden?
"Prüfe Eingabe in den Textfeldern" bis "CommandButton" gedrückt. Fahre erst fort nachdem alle Felder gefüllt sind..
Vielen Dank, Jan
Anzeige
AW: Kontrolle von Eingabe in TextBoxes
19.01.2004 14:18:53
Matthias G
Hallo ??? (Realname ->FAQ)
folgender Code ins UserForm-Codemodul:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value = "" Or TextBox1.Value = "0" Then
MsgBox "Eingabe falsch"
Cancel = True
End If
End Sub

Gruß
Matthias
AW: Kontrolle von Eingabe in TextBoxes
19.01.2004 14:32:51
Jan P
Hallo Matthias,
vom Prinzip her hilft mir der Code schon weiter. Nur erscheint die MessageBox gleich nachdem man das Makro startet. Die Inhalte sollen aber erst geprüft werden sobald der CommandButton betätigt wird. Dann soll das programm nicht stoppen, sondern solange mit dem Fortfahren warten bis die TextBoxes gefüllt sind. Es handelt sich um 3 TextBoxes und 2 Listboxes.
MfG Jan
Anzeige
AW: Kontrolle von Eingabe in TextBoxes
19.01.2004 15:15:02
Matthias G
Hallo Jan,
Das Makro kann nicht warten i.e.S., es sind ja im Userform lauter ereignisorientierte Prozeduren. D.h. Dein CommandButton_Click-Code kann die Textboxen prüfen, dann bei Unvollständigkeit einen Fehler melden und "Exit Sub". Vielleicht noch ein SetFocus auf die fehlerhafte Textbox.
Wenn alles passt, kann ja der Code fortgesetzt werden.
Nach Korrektur der Textboxes muss das nochmal der CommandButton gedrückt werden.
Dass der Code CommandButton_Click auf die Korrektur der Textboxes "wartet", ist nicht möglich und wohl auch nicht nötig, oder?
Gruß,
Matthias
AW: Kontrolle von Eingabe in TextBoxes
19.01.2004 15:24:58
Jan P
Hallo Matthias,
Im Grunde genommen "wartet" das Makro ja.... Der Benutzer hat ja eine beliebig lange Zeit, die TextBoxes zu füllen. Ist er der Meinung, daß alle Eingaben getätigt sind, clickt er den CommandButton. Mit diesem Ereignis soll geprüft werden, ob auch wirklich alle Eingaben vorgenommen wurden. Das kann mit Hilfe einer MessageBox angezeigt werden.
Nur ist mein Problem dann, daß das Makro ja die fehlerhaften TextBox-Inhalte (in diesem fall 0) übernimmt. Dann erhalte ich eine Fehlermeldung beim Übertragen ind die Excel-Arbeitsmappe. Und natürlich darf die TextBox auch nicht leer sein, weil dort zum Beispiel eine alphanummerische Angabe gemacht werden muß.
Der CommandButton muß ja auch nicht warten - vielleicht ist folgende Programmierung möglich:
Ereignis: CommandButton: Click (Prüfung der Eingabe in TextBoxes)
1. Fehler: Meldung über MsG-Box und Möglichkeit erneut was in die TextBoxes einzutragen. Um dann wieder mit dem Click-Ereignis eine Prüfung vorzunehmen.
2. Kein Fehler: Übernahme der Werte....
Vielen Dank und Gruß Jan
Anzeige
AW: Kontrolle von Eingabe in TextBoxes
19.01.2004 18:26:54
Matthias G
Hallo Jan,
also nochmal:
In einem allgemeinen Modul steht der Code:
...
UserForm1.Show
(weiterer Code)
...
weiterer Code wird erst abgearbeitet, wenn das UserForm geschlossen wird (UserForm1.Unload oder UserForm1.Hide, Ausnahmne: wenn das UF die Eigenschaft ShowModal=False hat).
Du musst halt nun dafür Sorge tragen, dass es erst geschlossen wird, wenn alle Eingaben ok sind.
Also (vereinfacht):

Private Sub CommandButton1_Click()
If TextBox1.Value = "" Or TextBox2.Value = "" Then
MsgBox "Bitte Eingaben vervollständigen!"
Exit Sub
'die Sub wird verlassen, ohne dass das Userform geschlossen wird!
End If
UserForm1.Hide
'hier Code: Übernahme der Werte (oder im allg. Modul nach UserForm1.Show)
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge