Création Macro de mise en page

  • Initiateur de la discussion Initiateur de la discussion Nathan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
244
Réponses
5
Affichages
617
Réponses
8
Affichages
614
Réponses
5
Affichages
409
Retour