Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Bordures sur plusieurs plages de cellules

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 !

Arnaud81

XLDnaute Junior
Bonjour,

J'ai plusieurs plages de cellules sur une feuille de la colonne B à la colonne K : B3 à K8 puis B9 à K12, etc... Ces plages ne seront pas fixes. Je voudrais pouvoir mettre une bordure autour de chaque plage.

Dans le fichier joint, en feuil1 ce que j'ai actuellement et en feuil2 ce que je souhaite obtenir.

Merci d'avance
 

Pièces jointes

Re : VBA - Bordures sur plusieurs plages de cellules

Bonjour Arnaud,

à tester

Code:
Sub test()
Dim i As Long
    For i = 3 To Range("C" & Rows.Count).End(xlUp).Row
        If Range("C" & i - 1).Value = "" Then
            With Range("C" & i).CurrentRegion
                .Borders(xlEdgeLeft).Weight = xlMedium
                .Borders(xlEdgeTop).Weight = xlMedium
                .Borders(xlEdgeBottom).Weight = xlMedium
                .Borders(xlEdgeRight).Weight = xlMedium
            End With
        End If
    Next i
End Sub
 
Re : VBA - Bordures sur plusieurs plages de cellules

Bonjour Arnaud81, salut Marc 🙂

Une variante :

Code:
Sub Bordures()
Dim r As Range, i As Byte
On Error Resume Next 'si aucune constante
Set r = [B3:B65536].SpecialCells(xlCellTypeConstants)
For Each r In r
  With r.CurrentRegion
    For i = 7 To 10
      .Borders(i).Weight = xlMedium
    Next
  End With
Next
End Sub
A+
 
Dernière édition:
Re : VBA - Bordures sur plusieurs plages de cellules

Re,

Avec une RAZ au début si l'on ajoute ou supprime des lignes :

Code:
Sub Bordures()
Dim r As Range, i As Byte
Application.ScreenUpdating = False
Cells.Borders.LineStyle = xlNone 'RAZ
On Error Resume Next 'si aucune constante
Set r = [B3:B65536].SpecialCells(xlCellTypeConstants)
For Each r In r
  With r.CurrentRegion
    For i = 7 To 10
      .Borders(i).Weight = xlMedium
    Next
  End With
Next
End Sub
A+
 
Re : VBA - Bordures sur plusieurs plages de cellules

Re bonjour,

J'aurai encore besoin d'un petit coup de main pour approfondir.

Dans le fichier joint, je voudrais supprimer le style des cellules vides (plus de bordures).


Feuil1, ce que j'ai aujourd'hui
Feuil2, ce que je souhaite avoir
 

Pièces jointes

Re : VBA - Bordures sur plusieurs plages de cellules

Bonjour Arnaud, Bonjour Gérard 🙂,

peut-être

Code:
Sub test()
Dim i As Long
    For i = 3 To Range("C" & Rows.Count).End(xlUp).Row
        If Range("C" & i).Value = "" Then
            Range("C" & i).EntireRow.Borders(xlInsideVertical).LineStyle = xlNone
        End If
    Next i
End Sub
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…