Herbers Excel-Forum - das Archiv
Fehler bei Bedingungsabfrage in Schleife
Betrifft: Fehler bei Bedingungsabfrage in Schleife
von: Peter
Geschrieben am: 15.12.2003 12:46:54
Hallo Forum,
ich erhalte merkwürdige Ergebnisse bei der Abfrage.
Kann sich jemand das mal ansehen?
Danke Peter
~begin~
Sub MitarbEintragen()
Dim laR1 As Long, laR2 As Long, i As Long
'>>>>zur Probe so festgelegt
' AnfMonat = DateSerial(Year(Date), 6, 1)
'ActiveSheet.Name = Format(AnfMonat, "mmm.yyyy")
'Sheets(Worksheets.Count - 1).Activate
'>>>Mitarbeiterdaten übeberprüfen und eintragen
laR1 = Sheets("Mitarbeiter").Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To laR1
'1.Abfrage
If Format(Sheets("Mitarbeiter").Cells(i, 5).Value, "mmm.yyyy") >= ActiveSheet.Name _
Then laR2 = Cells(Rows.Count, 2).End(xlUp).Row
'2.Abfrage
If Format(Sheets("Mitarbeiter").Cells(i, 5).Value, "mmm.yyyy") <= ActiveSheet.Name _
Then laR2 = Cells(Rows.Count, 2).End(xlUp).Row
If laR2 < 7 Then laR2 = 7
Cells(laR2 + 1, 2).Value = _
Sheets("Mitarbeiter").Cells(i, 2).Value
Cells(laR2 + 1, 1).Value = _
Left(Sheets("Mitarbeiter").Cells(i, 1).Value, 3)
Next i
End Sub
~end~
Betrifft: AW: Fehler bei Bedingungsabfrage in Schleife
von: WernerB.
Geschrieben am: 15.12.2003 14:26:03
Hallo Peter,
warum machst Du überhaupt zwei Abfragen? Du vergleichst doch einen Wert in der ersten Abfrage, ob er größer oder gleich dem anderen Wert ist und in der zweiten Abfrage, ob er kleiner oder gleich dem anderen Wert ist. Eine der drei Bedingungen (kleiner, größer, gleich) muss ja immer zutreffen. Auch was dann geschehen soll (Then ...), ist identisch.
Von daher brauchst Du m.E. keine Abfragen, sondern dafür nur diese eine Zeile:
laR2 = Cells(Rows.Count, 2).End(xlUp).Row
Viel Erfolg wünscht
WernerB.
P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe Forums-FAQ).