• Initiateur de la discussion Initiateur de la discussion Mesda
  • 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 !

Mesda

XLDnaute Nouveau
Bonjour,

je cherche à écrire un code VBA pour Excel :
j'ai un tableau avec des données qui sont extraites chaque jour et qui changes, je voudrais sélectionner des plages de cellule en automatique pour mettre des bordures épaisses pour chaque département.
voici mon tb (avec les bordures que je désire) :

1628050615715.png


chaque jour (l'extraction excel) la colonne B et différente, sur cette exemple j'ai 13 "MONTAGE", mais je voudrais que les bordures épaisses soient automatisées en fonction du département.

Daniel

Pièces jointes​

 
Solution
Bonjour Mesda, Wayki, Phil69970,

Commençons par trier le tableau et effacer toutes les bordures :
VB:
Sub Bordures()
'se lance par les touches Ctrl+B
Dim tablo, i&
Application.ScreenUpdating = False
ActiveSheet.UsedRange.Sort Columns(2), xlAscending, Header:=True 'tri sur la colonne B
Cells.Borders.LineStyle = xlNone 'efface toutes les bordures
With [A1].CurrentRegion
    tablo = .Resize(, 2) 'matrice, plus rapide
    For i = 2 To UBound(tablo)
        If tablo(i, 2) <> tablo(i - 1, 2) Then .Rows(i).Borders(xlEdgeTop).Weight = xlMedium 'bordure supérieure
    Next
    .BorderAround Weight:=xlMedium 'pourtour
End With
End Sub
A+
Bonjour Mesda, Wayki, Phil69970,

Commençons par trier le tableau et effacer toutes les bordures :
VB:
Sub Bordures()
'se lance par les touches Ctrl+B
Dim tablo, i&
Application.ScreenUpdating = False
ActiveSheet.UsedRange.Sort Columns(2), xlAscending, Header:=True 'tri sur la colonne B
Cells.Borders.LineStyle = xlNone 'efface toutes les bordures
With [A1].CurrentRegion
    tablo = .Resize(, 2) 'matrice, plus rapide
    For i = 2 To UBound(tablo)
        If tablo(i, 2) <> tablo(i - 1, 2) Then .Rows(i).Borders(xlEdgeTop).Weight = xlMedium 'bordure supérieure
    Next
    .BorderAround Weight:=xlMedium 'pourtour
End With
End Sub
A+
 

Pièces jointes

bonjour Wayki, Phil69970, job75,

Merci pour vos réponses,
j'ai testé les lignes de Phil69970 et job75, pour Wayki le programme me paraissait un peu trop compliqué.
les 2 autres fonctionnent bien, le programme de Phil69970 et plus compréhensible pour un débutant et celui de job75, ben on voit l'expert !
Mais c'est très formateur de voir plusieurs possibilités 🙂
@+
 
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
371
  • Question Question
Réponses
7
Affichages
236
Réponses
2
Affichages
334
Retour