Bonsoir Pias,
Tu peux essayer :
=====================================================
Sub voir_commandes()
' Paramétrage de la plage de cellules à traiter
Set Rng=Sheets("Commandes").Range("A8:C10008")
' Effacement de toutes les bordures des cellules de la plage
Rng.Borders(xlDiagonalDown).LineStyle = xlNone
Rng.Borders(xlDiagonalUp).LineStyle = xlNone
Rng.Borders(xlEdgeLeft).LineStyle = xlNone
Rng.Borders(xlEdgeTop).LineStyle = xlNone
Rng.Borders(xlEdgeBottom).LineStyle = xlNone
Rng.Borders(xlEdgeRight).LineStyle = xlNone
Rng.Borders(xlInsideVertical).LineStyle = xlNone
Rng.Borders(xlInsideHorizontal).LineStyle = xlNone
' Encadrement de toutes les cellules non vides de la plage
For Each Cel in Rng.Cells
If Cel <> "" then
Cel.Borders(xlEdgeLeft).LineStyle = xlContinuous
Cel.Borders(xlEdgeRight).LineStyle = xlContinuous
Cel.Borders(xlEdgeBottom).LineStyle = xlContinuous
Cel.Borders(xlEdgeTop).LineStyle = xlContinuous
Endif
Next Cel
End Sub
=====================================================
Attention !!!
S'il y a un nombre important de cellules à traiter, ce qui paraît être le cas, l'opération peut durer assez longtemps. Si celle-ci doit être fréquemment exécuté, il serait préférable d'intercepter l'évènement Change de la feuille, et de tester si la cellule changée fait partie de la plage. Ensuite selon qu'elle est vide ou non, on affiche ou l'on masque immédiatement la bordure.
Je n'ai pas testé, si cela ne fonctionne pas, rn'hésite pas à me recontacter si tu as un problème quelconque.
Cordialement.
Omicron.