Changez la couleur de la bordure d'une gamme sans changer le style de lin / poids

J'ai une gamme de cellules bien formatée avec différents poids de ligne de bordure (certains d'entre eux sont d'épaisseur moyenne et certains sont minces, sans motif particulier). Je veux exécuter une macro qui change la couleur des bordures en gris, mais chaque fois que je le fais, il change tous les poids de bordure en xlThin automatiquement. Je veux conserver l'épaisseur de la ligne d'origine, donc je n'ai pas besoin de passer à travers et de changer les respectifs return à xlMedium, ce qui serait fastidieux.

Est-ce que quelqu'un peut m'aider? Est-ce possible?

Le code que j'ai actuellement est simple, et il change la couleur correctement. Il modifie également automatiquement le poids de la ligne, même si je ne spécifie pas le poids ou le linestyle: Range("NamedRange").Borders.Color = RGB(150, 150, 150)

Ceci, sur mon Excel 2016, ne changera que la couleur de la bordure de la cellule, sans modifier la taille:

 Sub changeColorOnly() Dim rng As Range, cel As Range Set rng = Range("C6:C9") For Each cel In rng cel.Borders.Color = RGB(150, 150, 150) Next cel End Sub 

Est-ce que cela change toujours la taille pour vous?

Edit: Hm, je soupçonne qu'il y a quelque chose d'autre dans votre code, car je peux recolorer une gamme nommée sans qu'elle affecte les frontières. Cependant, juste parce que je travaillais déjà sur une autre alternative, vous pourriez également utiliser ces sous-systèmes (et modifier autant que nécessaire)

 Dim brdrTop, brdrLeft, brdrRight, brdrBtm, brdrInside Sub changeColor() saveBorderSize Range("myNamedRange") Range("MyNamedRange").Borders.Color = RGB(150, 150, 150) resetBorderSize Range("myNamedRange") End Sub Private Sub saveBorderSize(cel As Range) brdrTop = cel.Borders(xlEdgeTop).Weight brdrLeft = cel.Borders(xlEdgeLeft).Weight brdrRight = cel.Borders(xlEdgeRight).Weight brdrBtm = cel.Borders(xlEdgeBottom).Weight brdrInside = cel.Borders(xlInsideHorizontal).Weight End Sub Private Sub resetBorderSize(cel As Range) cel.Borders(xlEdgeTop).Weight = brdrTop cel.Borders(xlEdgeLeft).Weight = brdrLeft cel.Borders(xlEdgeRight).Weight = brdrRight cel.Borders(xlEdgeBottom).Weight = brdrBtm cel.Borders(xlInsideHorizontal).Weight = brdrInside End Sub