Herbers Excel-Forum - das Archiv
Fehler in Schleife. Array wird nicht eingehalten?!

|
Betrifft: Fehler in Schleife. Array wird nicht eingehalten?!
von: Jessica
Geschrieben am: 14.11.2003 08:50:19
Hallo Forum,
habe hier eine Schleife, die über die Zeilen 1-30 laufen soll und über die im Array genannten Spalten und sobald wenn eine der geprüften Zellen leer ist, dann soll sie rot gefärbt werden.
Den Tipp mit dem Spaltenarray habe ich hier auch mal im Forum gekriegt und bisher hat's immer funktioniert...
Bei diesem Code habe ich aber das Problem, dass er mir auch die Spalte 9 färbt, obwohl sie im Array doch gar nicht genannt ist?!
--------------------------------------------------------------------------------
Spaltenarray = "8,10,20,33,56,64,78,79,80,81,82,83,84"
For q = 1 To 30
For p = 8 To 84
If InStr(1, Spaltenarray, p, 1) Then
If IsEmpty(Cells(q, p)) Then
Cells(q, p).Interior.ColorIndex = 3
MsgBox "Es wird rot gefärbt: Zeile " & q & " Spalte " & p
Else
Cells(q, p).Interior.ColorIndex = xlNone
End If
End If
Next
Next
--------------------------------------------------------------------------------
Kann mir jemand sagen warum?? Ich find und find den Fehler einfach nicht...
Danke,
Jessie

 |
Betrifft: AW: Fehler in Schleife. Array wird nicht eingehalten?!
von: Harald Kapp
Geschrieben am: 14.11.2003 09:58:57
Hallo Jessie,
aus intelligenter, sprich menschlicher Sicht, hast Du recht, , aber aus dummer, sprich Computer-, Sicht ist die 9 natürlich doch enthalten z.B. in der Zahl 79.
So geht's:
Sub test()
Dim Spaltenarray As Variant
Spaltenarray = "8,10,20,33,56,64,78,79,80,81,82,83,84"
For q = 1 To 30
For p = 8 To 84
If InStr(1, Spaltenarray, "," & p & ",", 1) Then ' hier die Kommta berücksichtigen, das ist der Trick
If IsEmpty(Cells(q, p)) Then
Cells(q, p).Interior.ColorIndex = 3
MsgBox "Es wird rot gefärbt: Zeile " & q & " Spalte " & p Else
Cells(q, p).Interior.ColorIndex = xlNone
End If
End If
Next
Next
End Sub
Gruß Harald
Betrifft: AW: Fehler in Schleife. Array wird nicht eingehalten?!
von: Jessica
Geschrieben am: 14.11.2003 10:23:31
Hallo Harald,
Vielen, vielen herzlichen Dank! Da hätt' ich mich vermutlich totgesucht...
damit er die erste und letzte Spalte aber auch noch nimmt, hab ich noch ein Komma vor die 8 und hinter die 84 (bei der Zuweisung des Arrays)gemacht.
Bin begeistert!!
Liebe Grüße,
Jessie