Comment appliquer des bordures sur une cellule ?
Pour appliquer des bordures à une cellule à l’aide de VBA dans Excel, vous pouvez utiliser deux méthodes différentes. La première est la propriété « Borders » et la seconde est la méthode « BorderAround ». La seule différence entre ces deux méthodes réside dans la propriété « Bordures », vous pouvez même appliquer la bordure à un côté de la cellule et la bordure qui l’entoure s’applique complètement à la cellule.
Dans ce didacticiel, nous allons explorer les deux manières et examiner quelles sont les différentes manières d’ajouter la bordure.
Propriété de bordure VBA
- Tout d’abord, vous devez spécifier la plage ou la cellule où vous souhaitez appliquer la bordure à l’aide de l’objet plage.
- Après cela, tapez un point (.) puis sélectionnez la propriété « Borders » dans la liste des propriétés et méthodes.
- Ensuite, spécifiez l’index de bordure à partir des contants disponibles. Ici, j’utilise « xlEdgeBottom » pour appliquer la bordure uniquement au bas de la cellule.
- À partir de là, spécifiez le style de ligne à l’aide de « LineStyle ». J’utilise le « xlContinuonus » comme style de ligne.
Sub vba_borders()
Range("A1") _
.Borders(xlEdgeBottom) _
.LineStyle = XlLineStyle.xlContinuous
End Sub
Maintenant, lorsque vous exécutez ce code, il ajoutera une bordure au bas de la cellule A1.
Utilisation de différentes couleurs avec Color Index/Color
Tout comme vous choisissez normalement la couleur de la bordure lorsque vous le faites manuellement. Dans la propriété border, vous pouvez également utiliser l’index de couleur et la propriété color pour utiliser une couleur autre que la couleur par défaut.
Considérez le code ci-dessous.
With Range("A1").Borders(xlEdgeBottom)
.LineStyle = XlLineStyle.xlContinuous
.Color = RGB(255, 0, 0)
End With
Lorsque vous exécutez cette macro, elle ajoute une bordure au bas de la cellule avec une couleur rouge.
Ou si vous souhaitez utiliser la propriété colorindex, le code serait comme ça.
With Range("A1").Borders(xlEdgeBottom)
.LineStyle = XlLineStyle.xlContinuous
.ColorIndex = 7
End With
Connexe: VBA avec déclaration
Ajouter une bordure à l’intérieur d’une cellule
Si vous souhaitez appliquer une bordure à l’intérieur d’une cellule, dans ce cas, vous devez utiliser « xlDiagonalUp » et « xlDiagonalDown » comme xlBorderIndex.
With Range("A1").Borders(xlDiagonalUp)
.LineStyle = XlLineStyle.xlDashDotDot
.Color = RGB(255, 0, 0)
End With
With Range("A1").Borders(xlDiagonalDown)
.LineStyle = XlLineStyle.xlDashDotDot
.Color = RGB(255, 0, 0)
End With
Lorsque vous exécutez le code ci-dessus, il ajoute une bordure à l’intérieur de la cellule vers le haut et vers le bas.
Méthode VBA BorderAround
Dans la propriété BorderAround de VBA, vous disposez de 5 arguments facultatifs, mais deux doivent être spécifiés pour appliquer correctement la bordure à une cellule.
Le code suivant applique la bordure autour de la plage A1:A3 lorsque vous exécutez la macro.
Range("A1:A3").BorderAround _
LineStyle:=xlContinuous, _
Weight:=xlThin
Ajouter une bordure à chaque cellule de la plage
Le code suivant parcourt toutes les cellules de la plage et applique la bordure à chaque cellule une par une.
Sub vba_borders()
Dim iRange As Range
Dim iCells As Range
Set iRange = Range("A1:A10")
For Each iCells In iRange
iCells.BorderAround _
LineStyle:=xlContinuous, _
Weight:=xlThin
Next iCells
End Sub
Appliquer la bordure à toutes les cellules avec du texte
Le code suivant utilise un FOR LOOP, USED RANGE, IFEMPTY et IF STATEMENT pour appliquer des bordures aux seules cellules où vous avez une valeur.
Dim iRange As Range
Dim iCells As Range
Set iRange = ThisWorkbook.ActiveSheet.UsedRange
For Each iCells In iRange
If Not IsEmpty(iCells) Then
iCells.BorderAround _
LineStyle:=xlContinuous, _
Weight:=xlThin
End If
Next iCells
Supprimer les bordures
Il vous suffit d’utiliser le style de ligne « xlNone ».
Range("A1").Borders(xlDiagonalDown).LineStyle = xlNone
Et si vous souhaitez supprimer la bordure de toutes les cellules d’une feuille de calcul où vous avez une valeur, considérez le code suivant.
Dim iRange As Range
Dim iCells As Range
Set iRange = ThisWorkbook.ActiveSheet.UsedRange
For Each iCells In iRange
If Not IsEmpty(iCells) Then
iCells.Borders(xlDiagonalDown).LineStyle = xlNone
End If
Next iCells