Mettre En rouge lorsque la ou les cellules sont vides

Bonjour,

J'utilise ce code pour afficher un msgbox lorsque les cellules concernées sont vides.

Function Message(vide As String)
MsgBox vide
End Function
Sub cellules()
If [A1] = "" Or [A2] = "" Or [A3] = "" Then Call Message("Vide")
End Sub

J'aimerais mettre de la couleur sur les cellules non complétées (par exemple en rouge), puis le remettre en blanc une fois que je commence à saisir quelque chose ou clic sur la cellule concernée

Considérons les cellules A1, A2, et A3 vident, au moment ou je clic sur le bouton, faire apparaitre le msgbox et mettre en rouge les cellule, puis une fois cliqué sur la cellule pour commencé à saisir la remettre en "Pas de couleur"

J'ai essayé ceci mais sa n'a pas marché

If Me.A1.BackColor = vbRed Then Me.A1.BackColor = vbWhite

Vous avez une idée?

A+

18ronibo.xlsm (14.73 Ko)

Salut,

Si je t'ai bien compris, les codes du fichier ci-joint devraient faire l'affaire. Sinon il faut que tu sois plus clair.

Bonnes salutations.

32ronibo-v1.xlsm (18.43 Ko)

Bonsoir,

Merci pour ton aide

Oui c'est tout à fait ça

J'ai quelques questions sur ton code,

Comment faire si les cellules se suivent pas, par exemple les cellules "A12" "G10" "H15" ?

Et pour des cellules fusionnées "G10:H10" (par exemple) suffi ?

A+

Re,

J'ai pu me débrouillé un peu, j'ai viré for et next, mit entre parenthèse les cellules que je souhaite, en le séparant avec des virgules.

Par contre pour les cellules fusionnées, je n'arrive pas à les rendre blanches lorsqu'on clic dessus.

Tu as une idée?

A+

Édit : Après plusieurs test en supprimant les ligne for et next, lorsque je lance le code, il me colorie même les cellules avec des données

Re-bonjour,

Dans 99 % des cas, les cellules fusionnées peuvent être évitées et elles n’apportent que des problèmes par la suite.

Dans ton cas, je suis arrivé à transformer le code cellules afin qu’il fonctionne selon tes nouvelles demandes, mais le code Worksheet_SelectionChange ne fonctionne plus.

Alors je te conseille vraiment de séparer tes cellules fusionnées ou de devoir trouver de l’aide ailleurs.

Amicalement.

28ronibo-v2.xlsm (18.64 Ko)

Re,

Merci pour cette modif

Malheureusement il va être très très difficile d´éviter les fusions...

La je suis bloqué....

Bonsoir

Modifies ta macro

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Range("A1").Interior.ColorIndex = 3 Then Target.Interior.Pattern = xlNone
End Sub

Bonsoir,

J'espère que tu va bien Banzai64

Je viens de tester ton code, mais je vois aucun changement, les cellules ne devienne pas blanches...

Bonsoir

J'ai testé avec le fichier d'Yvouille

J'ai effacé les 3 cellules

J'ai appuyé sur le bouton ---> Message --> Cellules rouges

Clic tour à tour sur chaque cellule --> Deviennent blanches

Re,

Oups j'ai oublié de te dire que je rencontre ce souci pour les cellules fusionnées, précisé plus haut

Bonsoir

C'est un gag

Le fichier d'Yvouille comporte bien 2 cellules fusionnées G10 et H10, et cela fonctionne sur ces cellules

As tu essayé la modification ?

Joins le fichier en cause

Re,

Oui j'ai essayé, j'ai pas de problème pour mettre les cellules en rouge...

Clique su G10, normalement une fois cliqué, elle est sensée de passer en blanc

A+

Bonsoir

Tu n'as pas modifié le code !!!!!!

Re,

Voici le bon fichier, j'ai pas enregistré les modif...

Bonjour

Je crois que tu me comprends mal

Quand j'ai qui faut modifier le code il faut placer le code proposé TEL QUEL à la place de l'autre

Regardes ce fichier j'y ai placé le code sans rien modifier d'autre

Re,

Oui j'avais pas compris... Je pensais que c'était un exemple et que c'était à moi de faire la modif...

Mais pourquoi A1, je comprends pas le fonctionnement, tu peux me donner plus d'explication s'il te plait

A+

Bonsoir

Quand tu écris Range("A1") tu t'adresses à la 1ère cellule en haut à gauche de la feuille

Pareil pour Target.Range("A1") tu t'adresses à la 1ère cellule en haut à gauche de Target, et si target fait 2 cellules de large (cas de fusion) on ne s'adresse qu'à la 1ère cellule

Re,

J'ai bien compris le principe

Manque plus qu'à intégrer le tout dans le fichier original,

Merci à tout les deux,

Bonne fin de soirée

Re,

Bon bin ça commence bien,

J'ai fait à la lettre se qu'on à fait ensemble, mais les cellules ne passe pas en rouge si j'ai des cellules vides

'Création fichier PDF
Function MessageCelluleVidePDF(LeMessage As String, TitreMessage As String)
MsgBox LeMessage, vbInformation, TitreMessage
End Function
Sub BoutonImpressionPDF()
If [A12] = "" And [G10] = "" And [F14] = "" Then Call MessageCelluleVidePDF("Vérifiez que vous avez bien un client, un numéro de document et un nom de chantier !" & Chr(10) & Chr(10) & "Pour ajouter un client :" & Chr(10) & "Veuillez cliquer sur le bouton " & """" & "Ajouter un nouveau client" & """" & Chr(10) & Chr(10) & Chr(10) & "Pour numéroter un document :" & Chr(10) & "Veuillez faire un double-clic gauche avec la souris", "Cellules incomplètes"): Exit Sub
If [A12] = "" And [G10] = "" Then Call MessageCelluleVidePDF("Vérifiez que vous avez bien un client et un numéro de document !" & Chr(10) & Chr(10) & "Pour ajouter un client :" & Chr(10) & "Veuillez cliquer sur le bouton " & """" & "Ajouter un nouveau client" & """" & Chr(10) & Chr(10) & "Pour numéroter un document :" & Chr(10) & "Veuillez faire un double-clic gauche avec la souris", "Cellules incomplètes"): Exit Sub
If [A12] = "" And [F14] = "" Then Call MessageCelluleVidePDF("Vérifiez que vous avez bien un client et un nom de chantier !" & Chr(10) & Chr(10) & "Pour ajouter un client :" & Chr(10) & "Veuillez cliquer sur le bouton " & """" & "Ajouter un nouveau client" & """", "Cellules incomplètes"): Exit Sub
If [G10] = "" And [F14] = "" Then Call MessageCelluleVidePDF("Vérifiez que vous avez bien un numéro de document et un nom de chantier !" & Chr(10) & Chr(10) & "Pour numéroter un document :" & Chr(10) & "Veuillez faire un double-clic gauche avec la souris", "Cellules incomplètes"): Exit Sub
If [A12] = "" Then Call MessageCelluleVidePDF("Veuillez ajouter ou sélectionner un client !" & Chr(10) & Chr(10) & "Pour ajouter un client :" & Chr(10) & "Veuillez cliquer sur le bouton " & """" & "Ajouter un nouveau client", "Cellule incomplète"): Exit Sub
If [G10] = "" Then Call MessageCelluleVidePDF("Vérifiez que vous avez bien numéroté le document !" & Chr(10) & Chr(10) & "Pour numéroter un document :" & Chr(10) & "Veuillez faire un double-clic gauche avec la souris", "Cellule incomplète"): Exit Sub
If [F14] = "" Then Call MessageCelluleVidePDF("Veuillez saisir le nom du chantier !", "Cellule incomplète"): Exit Sub
If Range("A12") = "" Then Range("A12").Interior.ColorIndex = 3
If Range("G10") = "" Then Range("G10").Interior.ColorIndex = 3
If Range("F14") = "" Then Range("F14").Interior.ColorIndex = 3

Dim LePath$
Dim Chemin$
Range("F14").Activate
Range("F1:G1").Select
Chemin = "C:\Users\" & Application.UserName & "\Desktop\Devis - Facture en PDF"
On Error Resume Next
ChDir (Chemin)
If Err Then MkDir Chemin
On Error GoTo 0
LePath = Chemin & "\" & [F10] & [G10] & " - " & [A12] & " (" & [F14] & ").pdf"
LePath = "C:\Users\" & Application.UserName & "\Desktop\Devis - Facture en PDF\" & [F10] & [G10] & " - " & [A12] & " (" & [F14] & ").pdf"
If Dir(LePath) <> "" Then If MsgBox("Un fichier nommé '" & LePath & "' " & "existe déjà à cet emplacement." & Chr(10) & Chr(10) & "Voulez-vous le remplacer ?", vbYesNo + vbQuestion, "Fichier PDF au même nom existant") = vbNo Then Exit Sub
On Error Resume Next
MsgBox "Le fichier PDF a bien été créé sur le bureau de votre ordinateur !", vbInformation, "Confirmation"
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=LePath, OpenAfterPublish:=True
End Sub

Vous avez une idée?


Re,

Je crois que j'ai trouvé, c'est les exit sub qui causent problèmes...Ça devient vraiment difficile...

Tant mieux Ronibo si tu as ta solution.

Merci Banzai d'être venu à mon secours et pour cette excellente idée

Bonnes salutations.

Rechercher des sujets similaires à "mettre rouge lorsque vides"