Création Macro de mise en page

Nathan

XLDnaute Nouveau
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 :
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.
 

Statistiques des forums

Discussions
312 683
Messages
2 090 914
Membres
104 695
dernier inscrit
akke