j'ai le code VBA que l'enregistrement entré dates avec la date et remplir la cellule dans la couleur et vérifier qu'elle est appropriée si le colomn « F » n'est pas vide, il sera la couleur de la D, E, F colonnes. Le problème est que j'ai jusqu'à présent 21 enregistrements mais le système ne fait que colorer 19 enregistrement même si les 2 lignes ne sont pas vides dans la colonne F.où est l'erreur dans la deuxième instruction IF
code:
Private Sub CommandButton1_Click()
Dim i As Long
For i = Range("C5000").End(xlUp).Row To 2 Step -1 'Range upto 5000, chnge this as per your requirment'
If IsEmpty(Cells(i, 3)) Then
Cells(i, 3).Interior.Color = xlNone
ElseIf (VBA.CDate(Cells(i, 3)) - VBA.Date()) < 0 Then
Cells(i, 3).Interior.Color = vbGreen
ElseIf (VBA.CDate(Cells(i, 3)) - VBA.Date()) = 0 Then
Cells(i, 3).Interior.Color = vbYellow
ElseIf (VBA.CDate(Cells(i, 3)) - VBA.Date()) >= 1 And (VBA.CDate(Cells(i, 3)) - VBA.Date()) <= 4 Then
Cells(i, 3).Interior.Color = vbRed
ElseIf (VBA.CDate(Cells(i, 3)) - VBA.Date()) >= 5 And (VBA.CDate(Cells(i, 3)) - VBA.Date()) <= 10 Then
Cells(i, 3).Interior.Color = vbCyan
Else
Cells(i, 3).Interior.ColorIndex = xlNone
End If
' your 2nd criteria to color the entire row if "F" is not empty
If Trim(Range("F" & i).Value) <> "" Then Range("D" & i & ":F" & i).Interior.ColorIndex = 15
Next
End Sub
Pourquoi utiliser VBA pour cela? On dirait un travail pour 'Formatage conditionnel'. –
oui je sais mais je veux le faire en utilisant vba –
Le code semble ok. Utilisez 'debug.print len (Range (" F "& i) .Value)' pour vérifier si les cellules sont vides –