Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
536to540
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
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhalt zw. TextBox&ListBox prüfen per If-Befehl
22.12.2004 10:52:08
marco
Hallo,
ich finde bei folgenden If-Befehl den Fehler nicht:
...ElseIf cbo_VomBox.Value cbo_VomBox.List Or _
cbo_BisBox.Value cbo_BisBox.List Then
MsgBox "Eintrag nicht in der Liste enthalten !"
Ich möchte den Inhalt aus einer TextBox mit dem Inhalt einer ListBox vergleichen und wenn der Eintag nicht in der ListBox vorhanden ist, dann soll der Vorgang abgebrochen werden und eine Fehlermeldung angezeigt werden.
Es befinden sich auf dem UserForm jeweils zwei ComboBoxen (Vom & Bis), also nicht wundern über OR-Verknüpfung.
Ich bin über jeden Hinweis dankbar!
Gruß
marco

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt zw. TextBox&ListBox prüfen per If-Befehl
tobias
Hallo
du musst die Liste mit einer Schleife durchlaufen.
z.B.:
dim iList as long, bExist as boolean
for iList = 0 to ListBox1.ListCount
if TextBox1 = Listbox1.list(iList) then
bExist = true
end if
next
if bExist = true Then
MsgBox "Eintrag nicht in der Liste enthalten !"
end if
mfg tobias
kleiner Fehler
tobias
Nochmal Hallo
du musst die Liste mit einer Schleife durchlaufen.
z.B.:
dim iList as long, bExist as boolean
for iList = 0 to ListBox1.ListCount
if TextBox1 = Listbox1.list(iList) then
bExist = true
end if
next
if bExist = false Then
MsgBox "Eintrag nicht in der Liste enthalten !"
end if
mfg tobias
Anzeige
..und wie muss ich das nun verknüpfen?
22.12.2004 14:47:15
marco
Hallo Tobias,
danke schön, dass du mir hilfst. Ich kriege schon langsam graue Haare. :o)
Darauf wäre ich garnicht gekommen. Kann ich die Schleife nach meinen Bedürfnissen anpassen und dann einfach in meinen If-Befehl einsetzten?
Werde es jetzt gleich mal versuchen und melde mich dann.
Gruß
marco
..und wie muss ich das nun verknüpfen?
22.12.2004 14:47:19
marco
Hallo Tobias,
danke schön, dass du mir hilfst. Ich kriege schon langsam graue Haare. :o)
Darauf wäre ich garnicht gekommen. Kann ich die Schleife nach meinen Bedürfnissen anpassen und dann einfach in meinen If-Befehl einsetzten?
Werde es jetzt gleich mal versuchen und melde mich dann.
Gruß
marco
Anzeige
...jetzt blicke ich garnicht mehr durch!
22.12.2004 15:04:01
marco
Hallo Tobias,
sorry, aber irgendwie komme ich doch nicht damit klar. Hier ist mal mein ganzer Quellcode, aber nicht lachen:

Private Sub cmd_start_Click()
Dim iList As Long, bExist As Boolean
If IsNumeric(cbo_VomBox.Value) = False Or _
IsNumeric(cbo_BisBox.Value) = False Then
MsgBox "Bitte vordefiniertes Zahlenformat verwenden !"
ElseIf cbo_VomBox.Value > cbo_BisBox.Value Then
MsgBox "Vom-Datum ist größer als Bis-Datum !"
' Hier ist der Teil wo ich Probleme habe
ElseIf For iList = 0 To cbo_VomBox.ListCount           <=== hier habe ich deinen Code
If cbo_VomBox = cbo_VomBox.List(iList) Then    <=== eingefügt.
bExist = True
End If
Next
If bExist = False Then
MsgBox "Eintrag ist nicht in der Liste enthalten !"
End If
End Sub

Kannst du bitte einmal gucken? danke dir!
Gruß
marco
Anzeige
AW: ...jetzt blicke ich garnicht mehr durch!
tobias
Hallo

Private Sub cmd_start_Click()
Dim iList As Long, bExist As Boolean
If IsNumeric(cbo_VomBox.Value) = False Or _
IsNumeric(cbo_BisBox.Value) = False Then
MsgBox "Bitte vordefiniertes Zahlenformat verwenden !"
ElseIf cbo_VomBox.Value > cbo_BisBox.Value Then
MsgBox "Vom-Datum ist größer als Bis-Datum !"
End if
For iList = 0 To cbo_VomBox.ListCount
If cbo_VomBox = cbo_VomBox.List(iList) Then
bExist = True
End If
Next
If bExist = False Then
MsgBox "Eintrag ist nicht in der Liste enthalten !"
End If
End Sub

mfg tobias
Fehlermeldung
22.12.2004 15:50:37
marco
Hallo Tobias,
erstmal danke für deine Mühe! Bei mir kommt immer die Fehlermeldung: "Eigenschaft List konnte nicht abgerufen werden. Index des Eigenschaftfeldes ungültig!".
Dim iList As Long, bExist As Boolean
If IsNumeric(cbo_VomBox.Value) = False Or _
IsNumeric(cbo_BisBox.Value) = False Then
MsgBox "Bitte vordefiniertes Zahlenformat verwenden !"
ElseIf cbo_VomBox.Value > cbo_BisBox.Value Then
MsgBox "Vom-Datum ist größer als Bis-Datum !"
End If
For iList = 0 To cbo_VomBox.ListCount
If cbo_VomBox = cbo_VomBox.List(iList) Then bExist = True
End If
Next

If bExist = False Then
MsgBox "Eintrag ist nicht in der Liste enthalten !"
End If

Kann es daran liegen, weil das Listenfeld in einer ComboBox ist? Die hat den Namen cbo_VomBox (.Value klappt auch nicht) und das Listenfeld wollte ich mit .List ansprechen.
Ist das die Ursache für den Fehler?
Gruß
marco
Anzeige
AW: Fehlermeldung
tobias
Hallo
dann vielleicht so:
For iList = 0 To cbo_VomBox.ListCount - 1
If cbo_VomBox = cbo_VomBox.List(iList) Then
bExist = True
End If
Next
oder lade die Datei mal hoch
mfg tobias
es klappt!!! :o)
23.12.2004 07:40:15
marco
Hallo Tobias,
ich könnte dich drücken!! Es funktioniert. Super, vielen, vielen Dank!!! So fängt der Morgen doch richtig gut an.
Kannst du mir als Anfänger noch erklären, wo der Unterschied liegt, ob man jetzt "-1" einfügt oder nicht? Es bedeutet doch nur, dass die Schleife immer in einer Schritten läuft, oder?
Ich wünsche dir schöne Weihnachtstage und einen guten Rutsch ins neue Jahr!
Vielen Dank.
Gruß
marco
Anzeige
Doch noch eine Frage, sorry!!
23.12.2004 08:28:21
marco
Hallo Tobias,
sorry, ich muss dich doch nochmal nerven. Es klappt alles wunderbar, doch mir ist jetzt aufgefallen, dass durch die Schleife, der If-Befehl unterbrochen wird. Es sollen ja vor Ausführung des eigentlichen Programmes einzelne Zustände geprüft werden, ob der User bei der Eintragung Fehler gemacht hat. Das Problem ist jetzt das durch die Schleife, das Programm nicht ausgeführt werden kann, weil der "Else"-Befehl nicht eingefügt werden kann. Ich hoffe, dass ich mich verständlich ausgedrückt habe.
Hast du vielleicht einen Tipp für mich?
Danke Dir!
Gruß
Marco
Dim iList As Long, bExist As Boolean
Dim iList2 As Long, bExist2 As Boolean
If IsNumeric(cbo_VomBox.Value) = False Or _
IsNumeric(cbo_BisBox.Value) = False Then
MsgBox "Bitte vordefiniertes Zahlenformat verwenden !"
ElseIf cbo_VomBox.Value größer = cbo_BisBox.Value Then
MsgBox "Vom-Datum ist größer als Bis-Datum !"
End If
For iList = 0 To cbo_VomBox.ListCount - 1
If cbo_VomBox = cbo_VomBox.List(iList) Then
bExist = True
End If
Next

If bExist = False Then
MsgBox "Eintrag ist nicht in der Liste enthalten !"
End If
For iList2 = 0 To cbo_BisBox.ListCount - 1
If cbo_BisBox = cbo_BisBox.List(iList2) Then
bExist2 = True
End If
Next

If bExist2 = False Then
MsgBox "Eintrag ist nicht in der Liste enthalten !"
---------------Wenn alles richtig jetzt Programm ausführen -----------------------------
End If
Anzeige
AW: es klappt!!! :o)
tobias
Hallo
ListCount gibt die Anzahl der Zeilen in der Liste zurück. Der Index der List, also die erste Zeile fängt aber bei 0 an, deshalb ListCount - 1
Dir auch schöne Feiertage
mfg tobias
Danke schön!!!
23.12.2004 09:13:11
marco
Vielen Dank für deine Hilfe!
Gruß
Marco

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige