Obliger saisie de cellules vides

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 !

david84

XLDnaute Barbatruc
Bonjour,
dans une base de données, j'ai une feuille où je dois saisir les nouvelles fiches avec des renseignements de type nom, prénom, adresse,..., puis les enregistrer dans la BD à l'aide d'une macro commandée par un bouton.
Les cellules à renseigner sont placées en E6:E17.
Or, je veux que toutes ces cellules soient renseignées (même par un tiret si rien à dire).
Je voudrais inclure dans l'enregistrement de la macro "enregistrer" le fait que s'il y a des cellules vides, l'enregistrement ne peut se faire et qu'une boîte de dialogue le signale.

J'ai essayé d'inclure dans ma macro un bout de code de type :
If Sheets(1).Range("E8").Text = "" Then
MsgBox "Manque les données dans la cellule A8"
Cancel = True

else ma macro
End If
end sub

Sur une cellule (E8 dans l'ex), cela fonctionne mais je ne sais pas comment lui indiquer d'afficher la boîte de dialogue si une ou plusieurs cellules de la plage E9:E17 ne sont pas renseignées.
Quelqu'un peut-il me renseigner ?
 
Re : Obliger saisie de cellules vides

Bonjour David,

Une façon de faire :

Rajoute deux variables comme ceci :
Code:
Dim k As Byte, Resultat As String
puis ce bout de code
Code:
'.../...
For k = 9 To 17
  If Cells(k, 5) = "" Then Resultat = Resultat & Cells(k, 5).Address & vbCrLf
Next

If Resultat <> "" Then
 MsgBox "Manque les données dans la / les cellule(s) suivante(s) :" & vbCrLf & Resultat, vbCritical, "Erreur :"
 Exit Sub
Else
' ta macro
End If
End Sub
Adapte la boucle k, tu parles de E6:E17 et de E9:E17 ?

Bonne journée
 
Re : Obliger saisie de cellules vides

Merci bcp bqtr, c'est exactement ce que je voulais.
2 questions cependant pour essayer de comprendre :
- qu'est-ce que définit k ? Est-ce les n° de lignes ?
- Pourquoi mets-tu :
If Resultat <> "" Then
MsgBox "Manque les données dans la / les cellule(s) suivante(s) :" & vbCrLf & Resultat, vbCritical, "Erreur :"

Moi j'aurais eu tendance à mettre If Resultat = "" Then... puisque c'est qd la ou les cellules sont vides que le message d'erreur doit s'afficher.
Il y a un truc qui m'échappe...
 
Re : Obliger saisie de cellules vides

Re,

La variable k déclarée en Byte (parce que tu as très peu de ligne à tester) correspond bien au n° de ligne.
La boucle se fait de la ligne 9 à 17.

La boucle teste si il y a des cellules vides dans la plage E9:E17. Si c'est le cas, la variable Resultat enregistre l'adresse de la ou des cellules vides avec un retour à la ligne à chaque fois pour la présentation dans la MsgBox (l'instruction vbCrLf.)

Donc si la variable Resultat est vide c'est que toutes les cellules sont renseignées, et si c'est le cas tu peux lancer ta macro.
En résumé : si Resultat = "" lancement de ta macro.
Dans le cas contraire si tu as au moins une cellule vide, la variable Resultat contiendra quelque chose donc déclenchement de la MsgBox et sortie de la macro.
D'où si Resultat <> "" MsgBox + Exit Sub


A+
 
- 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