Hallo,
ich rufe über change mein sub colorize() auf.
mein problem liegt im letzten If
wenn ich in spalte 3 etwas schreibe, wird spalte 4 grau und mit "nicht benötigt" beschrieben
mein problem ist, dass dieses schreiben wieder als change erkannt wird und das programm von vorne beginnt
diese dauerschleife hört dann nich mehr auf und es hilft nur noch der task manager...
ist es möglich das nur manuell getätigtes schreiben als change erkannt wird? oder wie kann ich das ptoblem sonst umgehen??
In Tabelle1 habe ich folgendes geschrieben
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:Q")) Is Nothing Then
Exit Sub
End If
Call colorize
End Sub
Hier das sub colorize():
Sub colorize()
Dim spalte As Long
Dim zeile As Long
Dim spaltemax As Long
Dim zeileymax As Long
spaltemax = 10
zeilemax = 200
For zeile = zeilemax To 4 Step -1
If Application.WorksheetFunction.CountA(Rows(zeile)) = 0 Then 'wenn zeile verwendet dann zeile rot
Rows(zeile).Interior.ColorIndex = 2
Else
Rows(zeile).Interior.ColorIndex = 3
End If
For spalte = 1 To spaltemax 'jedes feld das ausgefüllt ist grün
If Not IsEmpty(Cells(zeile, spalte)) Then
Cells(zeile, spalte).Interior.ColorIndex = 4
End If
Next spalte
If Not IsEmpty(Cells(zeile, 3)) Then 'wenn feld 3 ausgefüllt soll feld 4 grau werden und "nicht benötigt drin stehen
Cells(zeile, 4).Interior.ColorIndex = 16
Cells(zeile, 4) = "nicht benötigt" '!!!!von hier aus springt es wieder zu change!!!!
End If
Next zeile
End Sub
Danke schon mal im voraus
Gruß Rainer
|