Bonjour, voilà mon problème : j'ai un fichier excel dont je fait une mise à jour toutes les semaines, à chaque mise à jour je doit refaire la mise en page.
En colonne C j'ai un nom de fichier, je veux déterminer 3 couleurs pour que lorsque la ligne i et la ligne i+1 ont un nom different la couleur soit différente, et si il n'y a pas de nom alors on a une troisième couleur. Pour l'instant j'ai fait une macro For et IF qui marchait très bien sauf que aujourd'hui cette macro est très longue, donc je me demande pourquoi et d'autre part je me demande si je n'aurai pas pu programmer avec des fonctions plus intelligente que de l'itératif bien lourd.
Voilà ma macro :
Voilà merci de votre aide.
En colonne C j'ai un nom de fichier, je veux déterminer 3 couleurs pour que lorsque la ligne i et la ligne i+1 ont un nom different la couleur soit différente, et si il n'y a pas de nom alors on a une troisième couleur. Pour l'instant j'ai fait une macro For et IF qui marchait très bien sauf que aujourd'hui cette macro est très longue, donc je me demande pourquoi et d'autre part je me demande si je n'aurai pas pu programmer avec des fonctions plus intelligente que de l'itératif bien lourd.
Voilà ma macro :
PHP:
FBGC.Range("A3", "L" & LMaxBGC).Interior.ColorIndex = 2
FBGC.Range("A3", "L" & LMaxBGC).Font.ColorIndex = 1
FBGC.Range("A3", "L" & LMaxBGC).Font.Bold = 0
If FBGC.Range("C3").Value <> "" Then
FBGC.Range("A" & 3, "L" & 3).Interior.ColorIndex = 4
ElseIf FBGC.Range("C3").Value = "" Then
FBGC.Range("A" & 3, "L" & 3).Interior.ColorIndex = 49
FBGC.Range("A" & 3, "L" & 3).Font.ColorIndex = 7
FBGC.Range("A" & 3, "L" & 3).Font.Bold = 1
End If
For i = 3 To LMaxBGC
If FBGC.Range("C" & i) = FBGC.Range("C" & i - 1) And FBGC.Range("C" & i).Value <> "" Then
FBGC.Range("A" & i, "L" & i).Interior.ColorIndex = FBGC.Range("C" & i - 1).Interior.ColorIndex
ElseIf FBGC.Range("C" & i) <> FBGC.Range("C" & i - 1) And FBGC.Range("C" & i - 1).Interior.ColorIndex = 4 And FBGC.Range("C" & i).Value <> "" Then
FBGC.Range("A" & i, "L" & i).Interior.ColorIndex = 20
ElseIf FBGC.Range("C" & i) <> FBGC.Range("C" & i - 1) And FBGC.Range("C" & i - 1).Interior.ColorIndex = 20 And FBGC.Range("C" & i).Value <> "" Then
FBGC.Range("A" & i, "L" & i).Interior.ColorIndex = 4
ElseIf FBGC.Range("C" & i).Value = "" Then
FBGC.Range("A" & i, "L" & i).Interior.ColorIndex = 49
FBGC.Range("A" & i, "L" & i).Font.ColorIndex = 7
FBGC.Range("A" & i, "L" & i).Font.Bold = 1
ElseIf FBGC.Range("C" & i) <> FBGC.Range("C" & i - 1) And FBGC.Range("C" & i - 1).Interior.ColorIndex = 49 And FBGC.Range("C" & i).Value <> "" Then
FBGC.Range("A" & i, "L" & i).Interior.ColorIndex = 4
End If
If FBGC.Range("C" & i).Value = "" Then
FBGC.Range("I" & i).Value = "X"
FBGC.Range("J" & i).Value = "X"
FBGC.Range("K" & i).Value = "X"
FBGC.Range("L" & i).Value = "X"
ElseIf FBGC.Range("C" & i) = FBGC.Range("C" & i - 1) And FBGC.Range("C" & i).Value <> "" And Len(FBGC.Range("D" & i)) >= 2 Then
FBGC.Range("I" & i, "J" & i).Value = "DEN à Remplir"
FBGC.Range("I" & i, "J" & i).Font.ColorIndex = 3
End If
Next i
Voilà merci de votre aide.