2016-06-17 6 views
0

Ich brauche Hilfe mit einem Code kommen, der bestimmte Zellen rot ändert, wenn das Datum einer Zelle kleiner ist als das heutige Datum und wenn eine andere Zelle leer ist.Verwenden von "Wenn und" Anweisung zum Ändern bestimmter Zellen rot

Wenn beispielsweise die Zelle "I5" kleiner als das heutige Datum ist und die Zelle "G5" leer ist, ändern Sie die Füllzelle "I5" in rot. Wenn nicht, dann ändere die Füllung auf grün. Und dies muss für jede Zelle in Spalte I wiederholt werden

Dies ist der Code Ich habe so:

With Sheet1 
    For Each rCell In .Range("I5", .Cells(.Rows.Count, 9).End(xlUp)).Cells 
     If rCell.Value <= Date And Cells(46, 7).Value = "" Then 
      rCell.Interior.Color = vbRed 
      Else 
      rCell.Interior.Color = vbGreen 
     End If 
    Next rCell 
End With 

Aber ich kann nicht viel weiter kommen als das.

Wenn jemand irgendwelche Ideen hat, lass es mich wissen. Vielen Dank.

+0

Zellen (46, 7) ist fest, sollte es repariert werden oder sollte es in Spalte G auf jeder Zeile aussehen? – Fredrik

+0

Statt "Datum" sollten Sie jetzt() verwenden. Datum ist ein Typ – Fredrik

+0

und wo ist dein Problem genau? was funktioniert nicht ? –

Antwort

2

Zellen (46, 7) ist fest, ich nehme unten Spalte G in jeder Zeile an. Nicht sicher über Ihre "With Sheet1". Wenn Sie keine Variable namens Sheet1 erstellt haben, sollten Sie Sheets ("Sheet1") verwenden. Unten, wie ich es machen würde.

With Sheets("Sheet1") ' or with ActiveSheet 
    For i = 5 To .Cells(.Rows.Count, 9).End(xlUp).Row 
     If .Cells(i, 9).Value <= Date And .Cells(i, 7).Value = "" Then 
      .Cells(i, 9).Interior.Color = vbRed 
     Else 
      .Cells(i, 9).Interior.Color = vbGreen 
     End If 
    Next i 
End With 
+0

Schönheit! Funktioniert super. Vielen Dank. – sully04

+0

OP verwendet wahrscheinlich Sheet1 als .CodeName des Arbeitsblatts, keine Variable namens "Sheet1". –

Verwandte Themen