Obliger à remplir une cellule
Résolu/Fermé
simkmil
Messages postés
481
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
24 décembre 2024
-
18 mars 2021 à 20:19
simkmil Messages postés 481 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 24 décembre 2024 - 21 mars 2021 à 11:36
simkmil Messages postés 481 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 24 décembre 2024 - 21 mars 2021 à 11:36
A voir également:
- Obliger à remplir une cellule
- Organigramme a remplir word - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Verrouiller une cellule excel - Guide
- Remplir et signer pdf - Guide
1 réponse
dachiasse
Messages postés
1709
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
13 mai 2021
149
18 mars 2021 à 22:10
18 mars 2021 à 22:10
Salut,
ici ça tourne sans arret
Ça veut dire que ta macro se lance dès l'ouverture du classeur en question et s'arrête lorsque tu fermes le classeur, non ?
Ton code VBA ressemble à ça ?
Dans ce code, on ne laissera jamais la possibilité d'écrire dans J6, ni dans d'autres cellules.
Tu as 2 options. La première est la plus simple. En imaginant que l'utilisateur va fermer le classeur, tu lances, dans le gestionnaire d'événements, la macro lorsque l'utilisateur ferme le classeur pour le contraindre à remplir cette cellule.
Ou, mieux, car s'il a passé 3h dans le classeur et qu'il veut à tout prix sortir de celui-ci, la contrainte va plus l'énerver qu'autre chose. Tu ajoutes dans le do while un inputbox :
ici ça tourne sans arret
Ça veut dire que ta macro se lance dès l'ouverture du classeur en question et s'arrête lorsque tu fermes le classeur, non ?
Ton code VBA ressemble à ça ?
do while range("J6").value = "" msgbox "Vous devez remplir la cellule J6" loop
Dans ce code, on ne laissera jamais la possibilité d'écrire dans J6, ni dans d'autres cellules.
Tu as 2 options. La première est la plus simple. En imaginant que l'utilisateur va fermer le classeur, tu lances, dans le gestionnaire d'événements, la macro lorsque l'utilisateur ferme le classeur pour le contraindre à remplir cette cellule.
Ou, mieux, car s'il a passé 3h dans le classeur et qu'il veut à tout prix sortir de celui-ci, la contrainte va plus l'énerver qu'autre chose. Tu ajoutes dans le do while un inputbox :
do while range("J6").value = "" range("J6").value = inputbox("Vous devez remplir la cellule J6.") loop do while vartype(range("J6").value) <> vbString range("J6").value = inputbox("La cellule J6 doit contenir du texte." loop
Modifié le 19 mars 2021 à 16:20
je met immédiatement ceci en test.
c'est super, ça marche très bien SAUF que ... j'avais omis de dire que dans J6 j'ai une liste déroulante ...
et mon input box ne me le permet pas.
Aurais tu une alternative ?
merci
19 mars 2021 à 16:45
Je fais de la programmation, mais, VBA, je connais peu.
Rien n'empêche de faire autant d'inputbox que d'éléments à entrer dans la liste déroulante.
Imaginons que ta liste déroulante doive contenir 5 éléments : ["avion", "voiture", "moto", "vélo", "bateau"]
Tu crées un Array de String de 5 éléments. Et tu boucles 5 fois un inputbox.
Par contre, je viens de me rendre compte que dans mon message 1, la première option va bloquer Excel, donc, il ne faut pas la faire.
21 mars 2021 à 11:36
For Each c In [Obligatoires]
If c.Value = "" Then nb = nb + 1
Next c
'If [K47] = "" And ([W44] = "autre service" Or [W44] = "PRS directe") Then nb = nb + 1
If nb > 0 Then MsgBox "Il manque " & nb & " champs obligatoires": Exit Sub
je vais donc mettre ce post en résolu.
merci de ton aide. et bon week end