Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1436to1440
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
Inhaltsverzeichnis

If Schleife in ListBox

If Schleife in ListBox
30.07.2015 16:50:25
Chris
Hallo liebe Herber Gemeinde,
Ich habe wahrscheinlich ein sehr triviales Problem aber sehe den Wald vor lauter Bäumen nicht mehr.
Unten zitierter Code geht nicht über die zweite Schleife hinaus, obwohl die beiden Werte ab einem bestimmten Wert der oberen Schleife gleich sind.
Konkret geht es um dieses Konstrukt was auf jeden Fall gleich ist ab ZeileQuali = 22
 If WSQuali.Cells(ZeileQuali, 1).Value = Me.ListBox1.List(Me.ListBox1.ListIndex, 2)
Ich habe bereits im Debugger Modus geschaut und er hat auf jeden Fall den richtigen Wert bei Me.ListBox1.List(Me.ListBox1.ListIndex, 2) und wenn ich WSQuali.Cells(22, 1).Value in eine MsgBox einsetze kommt dort auch der richtige Wert nur irgendwie wollen die beiden nicht matchen?
Was mache ich da nur falsch ?
Hier noch der gesamte Code:
For ZeileQuali = 6 To SonderZeileMax
If WSQuali.Cells(ZeileQuali, 1).Value = Me.ListBox1.List(Me.ListBox1.ListIndex, 2) Then '  _
Stationsnummer AusfallMA in TB QualiAnwsendTempEinschr finden
For SpalteQuali = 13 To SonderSpalteMax
If WSQuali.Cells(ZeileQuali, SpalteQuali).Value = "1" Then ' MA suchen der für  _
diese Station eine 1 hat
For Spalte = 1 To MaxSpalteRotationAusfall
If WSRotationAusfall.Cells(3, Spalte).Value = "Rotation" And  _
WSRotationAusfall.Cells(3, Spalte + 1).Value = Rotation Then
SpalteRotation = Spalte
End If
For Spalte2 = SpalteRotation To (SpalteRotation + 51)
If WSRotationAusfall.Cells(1, Spalte2).Value = WSQuali.Cells(1,  _
SpalteQuali).Value Then ' Diesen gefundenen MA auch in der Ausfall Rotation im Ausfall TB finden
For ZeileSonder = 194 To 233
If WSRotationAusfall.Cells(ZeileSonder, Spalte2).Value = "1"  _
Then 'Schauen auf welcher Station der MA momentan arbeitet
For ZeileQuali2 = 6 To SonderZeileMax
If WSRotationAusfall.Cells(ZeileSonder, 1).Value =  _
WSQuali.Cells(ZeileQuali2, 1).Value Then ' Diese Stationsnummer wieder in TB QualiAnwsendTempEinschr suchen
For SpalteQuali2 = 13 To SonderSpalteMax
If WSQuali.Cells(1, SpalteQuali2).Value =  _
WSRotationAusfall.Cells(280, 1).Value Then ' Wieder den Ausgefallen MA suchen in TB QualiAnwesendTempEinschr
If WSQuali.Cells(ZeileQuali2, SpalteQuali2). _
Value = "1" Then 'Schauen ob der Ausgefallenen MA auch die Station des potenteillen Tauschpartner kann
Me.ListBox2.AddItem WSQuali.Cells(1,  _
SpalteQuali).Value ' Namen des Potentiellen Tauschpartners eintragen
Me.ListBox2.List(Me.ListBox2.ListCount - 1,  _
2) = WSQuali.Cells(ZeileQuali2, 3).Value 'aktuelle Station des potentiellen Tauschparnters eintragen
For ZeileAusgabe = 5 To AusgabeZeileMax
If WSAusgabe.Cells(ZeileAusgabe, 1).Value = _
WSQuali.Cells(1, SpalteQuali).Value Then 'potentiellen Tauschpartner in der Ausgabe suchen
Me.ListBox2.List(Me.ListBox2.ListCount - 1, _
1) = WSAusgabe.Cells(ZeileAusgabe, Rotation).Value 'Station für die vorangegangene Belgung
Me.ListBox2.List(Me.ListBox2.ListCount - 1, _
3) = WSAusgabe.Cells(ZeileAusgabe, Rotation + 2).Value 'Station der danach liegenden Rotation (falls noch eine gibt)
End If
Next ZeileAusgabe
End If
End If
Next SpalteQuali2
End If
Next ZeileQuali2
End If
Next ZeileSonder
End If
Next Spalte2
Next Spalte
End If
Next SpalteQuali
End If
Next ZeileQuali

Beste Grüße
Chris

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Schleife in ListBox
30.07.2015 16:56:37
Peter
Hallo Chris,
kann es sein, dass du hier Text gegen Zahl vergleichst und deshlab Ungleichheit herausbekommst?
Evtl. hilft für beide Werte eine Konvertierung mit CDbl oder CInt o. ä.
Gruß Peter

AW: If Schleife in ListBox
30.07.2015 17:14:24
Chris
Servus Peter,
danke für deine Nachricht. Habe jetzt mal den Wert in WSQuali auf Stadt gestellt .... keine Reaktion (kein Match)
und auch wenn der Wert auf Zahl gestellt ist (kein Match)
Aber wenn der Wert auf Zahl gestellt ist müsste es doch gehen oder? der Vergleich geschieht doch nur zwischen der Syntax ?
Oder gibt es da ein Spezial fall bei ListBox?
Ich werde echt noch wahnsinnig mit diesen VERDAMMTEN Details!
Danke und Grüße
Chris

Anzeige
AW: If Schleife in ListBox
30.07.2015 17:36:55
Peter
Hallo Chris,
ListBox-Werte sind wie Combobox- und TextBox-Werte immer Text, der ggf. zur Zahl konvertiert werden muss.
Es könnte natürlich auch sein, dass du führende oder nachfolgende Leerzeichen in den Werten hast, die erst mit Trim eliminiert werden müssten.
Auch Groß-/Kleinschreibung spielt bei Texten evtl. einen Streich beim Vergleich.
Also muss auch hier alles in Groß oder Klein konvertiert werden.
Da wir Deine Daten nicht im Original sehen, kann man nur raten, was die Ursache sein könnte.
Gruß Peter

AW: If Schleife in ListBox
31.07.2015 11:41:33
Chris
Hi Peter,
also ich habe jetzt den Inhalt der ListBox in einen Long Dateityp Konvertiert und jetzt erkennt er den Wert im Vergleich. Nochmal danke für den Hinweis. WAHNSINN was solche Kleinigkeiten einen wieder für zeit und Nerven kosten!
If WSQuali.Cells(ZeileQuali, 1).Value = CLng(Me.ListBox1.List(Me.ListBox1.ListIndex, 2))
Beste Grüße
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige