Delimitation de ligne MACRO VBA Excel

Bonjour,

Après avoir fais plusieurs recherche je ne sais pas comment automatisé un fichier excel malgré plusieurs tentative. Je suis donc venu chercher de l'aide svp.

J'ai un fichier Excel ayant plusieurs lignes et colonnes.

Il est s'étend de A à AF et peux avoir un nombre de lignes qui varie.

J'aimerai délimiter en mettant une bordure inférieure en gras à chaque fois que le nombre contenue dans les cellules de la colonne L change. Généralement les cellules identique ayant le même contenue se suivent mais le nombre de cellules identique peut varier.

J'aimerai que ça soit fait de manière automatique avec des macros.

Et j'aimerai si possible également savoir si il y un moyen de fusionner les cellules de la colonne A entre chaque

délimitation

Avant exemple

avanr

Final apres macro

rendu final

J'ai donnée un exemple de rendu avec deux colonnes ci dessus svp

Merci d'avance

Bonjour,

à tester,

Sub test()
Cells.Borders(xlEdgeBottom).LineStyle = xlNone
For i = 2 To Cells(Rows.Count, "L").End(xlUp).Row
    If Cells(i, "L").Value <> Cells(i + 1, "L").Value Then
        With Range("A" & i & ":AF" & i).Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThick
        End With
    End If
Next
End Sub

Bonjour

Tous cela peut être fait par mise ne forme conditionnelle (MFC) : on ne fusionne jamais les cellules (pour éviter 1000 et 1 problèmes) mais par MFC on rend invisibles les répétitions

La MFC ne permet pas les bordure épaisses alors on fait souvent l'inverse : on met des bordures partout et la MFC les masque

Illustration

mfc alternee2

Edit : Salut Isabelle

Bonjour,

à tester,

Sub test()
Cells.Borders(xlEdgeBottom).LineStyle = xlNone
For i = 2 To Cells(Rows.Count, "L").End(xlUp).Row
    If Cells(i, "L").Value <> Cells(i + 1, "L").Value Then
        With Range("A" & i & ":AF" & i).Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThick
        End With
    End If
Next
End Sub

Bonjour Isabelle,

Merci pour votre aide tout d'abord

Votre code marche sauf que cela agit pas sur les les colonnes du début. En clair à partir de la colonne L tout est délimité avec la bordure mais de la colonne A jusqu’à L rien n'est délimité.

Comment faire pour que toutes les colonnes du tableau soit bien délimité svp

Je vous ai mis en pièce jointe un exemple du fichier

Merci d'avance

12planning.xlsm (383.05 Ko)

Bonjour

Tous cela peut être fait par mise ne forme conditionnelle (MFC) : on ne fusionne jamais les cellules (pour éviter 1000 et 1 problèmes) mais par MFC on rend invisibles les répétitions

La MFC ne permet pas les bordure épaisses alors on fait souvent l'inverse : on met des bordures partout et la MFC les masque

Illustration

MFC_Alternée2.jpg

Edit : Salut Isabelle

Bonjour Chris

Merci pour votre aide

Je voudrai néamoins placer les bordures en fonction de la colonne numéro et non la date

Est ce possible?

Merci d'avance

Bonjour

En MFC on fait ce qu'on veut : comme tu parlais de la colonne L en montrant une image avec A et B...

Je te conseille vivement de travailler en tableau structuré.

Tu mets une bordure épaisse entre chaque ligne du tableau (cemla se fait en une fois via le bouton bordures, autres Bordures) puis tu crées 2 MFC :

L'une sur l'ensemble des colonnes, avec la formule suivante (partant du principe de la sélection part de la ligne 2 et la plage d'application est A2:AFx)

=$L2<>$L1

et dans le format de la bordure tu supprimes la ligne du haut

L'autre sur la colonne où la valeur de doit pas être répétée (A si j'ai bien compris) donc plage d'application de A2 à Ax) en se plaçant dans A2

Appliquer une MFC seulement aux cellule qui contiennent, Valeur de la cellule, égale à; =A1

et metre la couleur de police en blanc (ou couleur du fond)

re,

à tester,

re,

à tester,

Saaandravba-Planning.xlsm

Merci beaucoup,

pourrai-je savoir comment vous avez fait pour que la délimitation prenne tout les colonnes svp?

Merci d'avance

Bonjour

En MFC on fait ce qu'on veut : comme tu parlais de la colonne L en montrant une image avec A et B...

Je te conseille vivement de travailler en tableau structuré.

Tu mets une bordure épaisse entre chaque ligne du tableau (cemla se fait en une fois via le bouton bordures, autres Bordures) puis tu crées 2 MFC :

L'une sur l'ensemble des colonnes, avec la formule suivante (partant du principe de la sélection part de la ligne 2 et la plage d'application est A2:AFx)

=$L2<>$L1

et dans le format de la bordure tu supprimes la ligne du haut

L'autre sur la colonne où la valeur de doit pas être répétée (A si j'ai bien compris) donc plage d'application de A2 à Ax) en se plaçant dans A2

Appliquer une MFC seulement aux cellule qui contiennent, Valeur de la cellule, égale à; =A1

et metre la couleur de police en blanc (ou couleur du fond)

D'accord je réessaye et je reviens vers vous

Merci beaucoup

pourrai-je savoir comment vous avez fait pour que la délimitation prenne tout les colonnes svp?

Merci d'avance

j'ai enlevé le format "bordure pointillé" qu'il y avait sur les première colonnes

Rechercher des sujets similaires à "delimitation ligne macro vba"