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
Avec une MFC c'est bien simple, on ne s'occupe pas des couleurs :
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 flag = True
Next
If flag Then MsgBox "Veuillez compléter les cellules vides rouges." Else Sheets("Feuil2").Activate
End Sub
Désolé job75, les cellules ne doivent pas être modifiées tant que le bouton "Aller à la feuille 2" n'est pas cliqué.
Explications :
Au départ les cellules concernées sont vidées avec bouton pour une RAZ.
Elles sont donc vides et en attente de remplissage.
L'utilisateur remplit les cellules et passe à la feuille suivante avec un bouton et c'est à ce moment là que les Warning se déclenchent avec msgbox + bordures rouge et impossibilité de passer à la feuille suivante.
 
Bonjour @eriiic

J'avais la solution ici mais entre temps le demandeur a changé de fichier et de mise ne forme du coup il faut tout refaire en espérant qu'il ne change pas de fichier encore ....😵

@Phil69970
eriiic, Phil69970, le fil,
Phil69970 à raison, les bordures de mon premier fichier étaient toutes identiques. Je ne pensais pas que cela poserait un problème, j'en suis désolé.
Entre temps, j'ai posté le fichier présent dans ce post. Croyez-moi je ne cherche pas à compliquer.
En réalité je me moque des bordures pourvu qu'il y ait un élément distinctif qui indique à l'utilisateur que certaines cellules ne sont pas remplies.
Exemple : ?? dans les cellules vides ou fonds dégradés jaunes passe en fonds rouge, etc. -> à condition qu'elles reviennent à leur état de départ.
 

Pièces jointes

Le fil

En partant de ce que tu as écris :
En réalité je me moque des bordures pourvu qu'il y ait un élément distinctif
Je te propose autre chose qui permet d'identifier les cellules vides....

*Essaye à l'avenir d'identifier clairement tes besoins cela évitera de refaire x fois le fichier
*Je pense que cela est faisable avec une MFC comme Job75 l'a dit.
@Phil69970
 

Pièces jointes

Bonjour le fil, le forum,

On peut tout simplement sélectionner les cellules vides :
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 flag Then MsgBox "Veuillez compléter les cellules vides sélectionnées." Else Sheets("Feuil2").Activate
End Sub
A+
 
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
 

Pièces jointes

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
Bonjour job75, le fil, le forum,
C'est effectivement une très bonne solution qui permet d'identifier les cellules non complétées et de proposer le remplissage de la première cellule du haut à l'utilisateur, tous ceci sans modifier la mise en forme de la cellule. Merci pour cette proposition.
 
- 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