XL 2010 Affecter des bordures si cellules vides

  • Initiateur de la discussion Initiateur de la discussion Orson83
  • 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 !

Orson83

XLDnaute Impliqué
Bonsoir le forum,
Je rencontre un blocage pour affecter des bordures "rouge gras" à des cellules qui sont vides. En effet, au clic sur un bouton, j'ai une macro qui affiche une msgbox si certaines cellules sont vides (ça c'est OK) et j'aimerai ajouter des bordures aux cellules concernées mais je n'y parviens pas malgré mes recherches.
Je joins un fichier exemple dans ce fil.
Merci pour votre aide.
Tchotchodu31
 

Pièces jointes

Solution
Pour peaufiner on peut mettre la 1ère cellule vide en mode Edition avec SendKeys :
VB:
Sub BtnVaFeuil2()
Dim c As Range, flag As Boolean
For Each c In Range("D2:D5,D7:D9,D12,D15:D16")
    If c = "" Then
        Union(IIf(flag, Selection, c), c).Select 'sélection multiple
        flag = True
    End If
Next
If Not flag Then Sheets("Feuil2").Activate: Exit Sub
MsgBox "Veuillez compléter les cellules vides sélectionnées."
CreateObject("WScript.Shell").SendKeys "{F2}" 'mode Edition
End Sub
@job75 : j'ai du mal à adapter votre macro à ma page qui comporte d'autres fonctionnalités. En effet, la fonction "sélection multiple" ne fonctionne pas.
Je précise que tout se passe dans la feuille 2 avec du masquage/affichage de lignes.
Voici le code complet :
VB:
Sub BtnAfficheEtape2() 'Tout se passe dans la même Feuille
   
Dim c As Range, flag As Boolean

    For Each c In Range("E10:E11")
    If c = "" Then
        Union(IIf(flag, Selection, c), c).Select 'sélection multiple
        flag = True
    End If
    Next

    If Not flag Then Sheets("Feuil2").Unprotect PassWord:="toto"
    Sheets("Feuil2").Rows("6:133").Hidden = True
    Sheets("Feuil2").Rows("36:56").Hidden = False
    Sheets("Feuil2").Rows("124:125").Hidden = False
    Sheets("Feuil2").Protect PassWord:="toto", UserInterfaceOnly:=True
    Application.Goto Sheets("Feuil2").Range("A1")
    Application.Goto Sheets("Feuil2").Range("E37")
    Exit Sub
   
    'Autre fonction connexe qui gère l'affichage d'une plage de cellules
    With ActiveSheet
    For Each cellule In .Range("E38:E49")
        cellule.EntireRow.Hidden = cellule.Value = ""
        cellule.EntireRow.Hidden = cellule.Value = 0
    Next cellule
    End With
   
    Exit Sub
   
     MsgBox "Veuillez compléter les cellules vides sélectionnées."
    CreateObject("WScript.Shell").SendKeys "{F2}" 'mode Edition

End Sub
Problème résolu, Exit Sub était mal placé :
VB:
...
     With ActiveSheet
    For Each cellule In .Range("E38:E49")
        cellule.EntireRow.Hidden = cellule.Value = ""
        cellule.EntireRow.Hidden = cellule.Value = 0
    Next cellule
    End With
    Exit Sub 'A placer ici
    End If
 
- 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

Discussions similaires

Retour