Créer des bordures dans les cellules non vides d'une plage.

  • Initiateur de la discussion Initiateur de la discussion Pias
  • Date de début Date de début

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 !

P

Pias

Guest
Bonsoir le forum,

Est-ce que quelqu’un peut me dire, SVP, s’il est possible de modifier la macro ci-dessus de manière à que les bordures puissent être crées uniquement dans les cellules, non vides ?

Merci d’avance.

Sub voir_commandes()

Sheets("Commandes").Select

Range("A8:C10008").Select
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
End Sub

Amicalement

...On se lasse de tout sauf d’apprendre !..
 
Bonjour

essaye ceci :

Public Sub vev()
dim c as range


For Each c In Sheets("Commandes").Range("A8:C10008")

If c.Value <> "" And c.Value <> 0 Then
c.Borders(xlEdgeLeft).LineStyle = xlContinuous
c.Borders(xlEdgeRight).LineStyle = xlContinuous
c.Borders(xlEdgeBottom).LineStyle = xlContinuous
c.Borders(xlEdgeTop).LineStyle = xlContinuous
End If
Next c
End Sub

Cette macro met une bordure au cellule non vide, mais les cellules comportant une formule à zéro sont épargnées.

Salut
Hervé
 
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.
 
Bonsoir le forum, Hervé et Omicron

J’ai testé les 2 macros et elles fonctionnent parfaitement.
Un tout grand merci pour votre serviabilité.
et bonne nuit.

Amicalement

...On se lasse de tout sauf d’apprendre !..
 
bonsoir

un autre exemple
la sélection des cellules dans cet exemple inclue la sélecton des cellules contenant des formules, une erreur se produit s´il ný a pas de formules

Application.ScreenUpdating = False
Union(Selection.SpecialCells(xlCellTypeFormulas), Selection.SpecialCells(xlCellTypeConstants, 23)).Select
'Selection.BorderAround ColorIndex:=3, Weight:=xlThick
For Each cl In Selection
For i = 1 To 4
With cl.Borders(i)
.LineStyle = xlContinuous
.Weight = xlThin
End With
Next i
Next cl


stephane
 
Salut à vous,

Je ne m'y connais pas en macro, mais par formule c'est très aisé !

Sélectionner la plage (ici A8:C10008), puis menu Format / Mise en forme conditionnelle / la formule est : =A8<>"" / Format / Bordure / OK / OK

Faire attention qu'Xl n'ajoute pas automatiquement des "", le cas échéant les effacer.

Ândré.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL pour MAC Recherche date
Réponses
5
Affichages
2 K
Réponses
8
Affichages
1 K
Réponses
13
Affichages
3 K
Réponses
1
Affichages
633
Réponses
6
Affichages
1 K
Retour