VBA - Bordures sur plusieurs plages de cellules

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

  • bordures VBA.xlsm
    10.4 KB · Affichages: 90
  • bordures VBA.xlsm
    10.4 KB · Affichages: 97
  • bordures VBA.xlsm
    10.4 KB · Affichages: 89

tototiti2008

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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+
 

Arnaud81

XLDnaute Junior
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

  • bordures VBA.xlsm
    10.7 KB · Affichages: 78
  • bordures VBA.xlsm
    10.7 KB · Affichages: 72
  • bordures VBA.xlsm
    10.7 KB · Affichages: 78

tototiti2008

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 166
Messages
2 085 889
Membres
103 019
dernier inscrit
Eliot_1