Macro Excel mise en forme bordures sur condition valeur cellule

apprenti75

XLDnaute Nouveau
Bonjour,

Je suis novice en programmation de macro et cherche à créer des macros de mise en forme. J'ai fouillé dans le forum mais n'ai rien trouvé qui corresponde à ce que je veux faire.
Notamment j aimerai à partir d'un tableau qui contient 'n' colonnes et 'n' lignes (ie le nombre varie pour chaque tableau) créer des bordures en gras sur toute la longueur de la ligne qui contient des valeurs et que ces bordures regroupent toutes les lignes dont la valeur de la 1ère colonne est identique. En fait la valeur de la cellule de la 1ere colonne me sert d'index.

Quelqu'un pourrait il m aider?

Merci
 

Staple1600

XLDnaute Barbatruc
Re : Macro Excel mise en forme bordures sur condition valeur cellule

Bonsoir et bienvenue sur XLD


Essayes de faire tes bordures en lançant l'enregisteur de macro

Ensuite tu fais ALT+F11 pour voir le code VBA généré.


Autrement voici une dédut de code
A tester (a des données éparses en colonne A)

Code:
Sub test_bordures()
Dim c As Range
Dim i As Integer
Dim ligne As Long
Dim colonne As Integer
Application.ScreenUpdating = False
    For Each c In Range("A1:A" & [A65536].End(xlUp).Row)
        If Not IsEmpty(c) Then
        ligne = c.Row
        colonne = Cells(c.Row, 256).End(xlToLeft).Column
            With Cells(ligne, 1).Resize(1, colonne)
            For i = 1 To 4
                With .Borders(i)
                    .LineStyle = xlContinuous
                    .Weight = xlMedium
                    .ColorIndex = xlAutomatic
                End With
            Next
            End With
        End If
    Next c
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro Excel mise en forme bordures sur condition valeur cellule

Re



Voic une petite modif qui demande la valeur commençant le tableau

Code:
Sub test_bordures_ii()
Dim c As Range
Dim i As Integer
Dim ligne As Long
Dim colonne As Integer
Dim valeur As String
valeur = InputBox("Saisir la valeur commençant vos tableaux")
Application.ScreenUpdating = False
    For Each c In Range("A1:A" & [A65536].End(xlUp).Row)
        If c.Value = valeur Then
        ligne = c.Row
        colonne = Cells(c.Row, 256).End(xlToLeft).Column
            With Cells(ligne, 1).Resize(1, colonne)
            For i = 1 To 4
                With .Borders(i)
                    .LineStyle = xlContinuous
                    .Weight = xlMedium
                    .ColorIndex = xlAutomatic
                End With
            Next
            End With
        End If
    Next c
Application.ScreenUpdating = True
End Sub
 

apprenti75

XLDnaute Nouveau
Re : Macro Excel mise en forme bordures sur condition valeur cellule

Merci pour cette réponse ultra rapide!
Ca marche très bien mais ce que je souhaite faire est que quand 'n' lignes ont même valeur en colonne A ou si la valeur de la ligne suivante dans la colonne A est vide alors la bordure encadre non pas chaque cellule mais les 'n' lignes concernées. Precision : la colonne A est classée par ordre croissant.Pour plus de clarté je vous ai joint un fichier en exemple.

Merci beaucoup encore de cette aide.
 

Pièces jointes

  • Test_macro.xls
    42.5 KB · Affichages: 223
  • Test_macro.xls
    42.5 KB · Affichages: 238
  • Test_macro.xls
    42.5 KB · Affichages: 239

Discussions similaires