Mettre des bordures en VBA

Bonjour à tous !

J'aurais besoin de votre aide pour quelque chose de simple mais je n'arrive pas à trouver la combine pour que cela fonctionne parfaitement ...

La macro va chercher des données dans plusieurs classeurs et les répertorie sur une feuille Excel. Jusque la tout vas bien.

Je voudrais qu'a la fin de cette macro, toutes les cases aient une bordure noire. Mais seulement les cases ou c'est utile, c'est à dire que pour l'instant j'ai des données jusqu'à la ligne 346 entre les cellules B1 et J346 (cela sera différent demain). Je ne veux pas que les 10 000 cases soient avec des bordures, mais seulement les cases entre B1 et J346. Mais qui je rajoute une ligne demain la ligne 347 soit aussi prise en compte.

Voici mon code

'Mise en forme du tableau
    Dim cellule As Range
For Each cellule In Range("B:J")
   If cellule <> "" Then cellule.Borders.Weight = xlThin
Next

Le problème c'est qu'avec ce code il n'y a que les cellules qui contiennent du texte qui ont des bordures. C'est à dire que si en B4 et en D4 j'ai du texte, il y aura des bordures mais pas en C4. Ce qui fait un trou et c'est embêtant ...

J'espère avoir été assez clair, si besoin je peux réexpliquer sans problème.

Merci de votre lecture

Bonjour,

Un exemple à adapter.

Cdlt.

Sub DEMO()
Dim n As Long
    With ActiveSheet
        n = .Cells(.Rows.Count, 2).End(xlUp).Row
        .Cells(1, 2).Resize(n, 9).Borders.Weight = xlThin
    End With
End Sub

Bon, maintenant, il va falloir penser à supprimer le quadrillage.

Cdlt.

Merci Jean-Eric ça fonctionne !

Mais pourquoi faut-il que je supprime le quadrillage ?

Bonjour,

Je pensais simplement qu'il pouvait y avoir plus ou moins de lignes.

Donc de devoir revoir le quadrillage en conséquence.

Cdlt.

Ah oui effectivement il faut adapter ... Il n'y a pas un moyen pour que cela s'adapte automatiquement ?

Bonjour,

peut-être ainsi :

Sub DEMO2()
Dim rng As Range, n As Long
    With ActiveSheet
        Set rng = .UsedRange
        rng.Borders.LineStyle = xlNone
        n = .Cells(.Rows.Count, 2).End(xlUp).Row
        .Cells(1, 2).Resize(n, 9).Borders.Weight = xlThin
    End With
End Sub

Super merci !

Rechercher des sujets similaires à "mettre bordures vba"