Obliger à remplir une cellule
Résolu/Fermé
simkmil
Messages postés
414
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
1 mars 2023
-
18 mars 2021 à 20:19
simkmil Messages postés 414 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 1 mars 2023 - 21 mars 2021 à 11:36
simkmil Messages postés 414 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 1 mars 2023 - 21 mars 2021 à 11:36
A voir également:
- Obliger à remplir une cellule
- Excel remplir une cellule en fonction d'une autre ✓ - Forum Excel
- Aller à la ligne dans une cellule excel - Guide
- Excel colorer une cellule sous condition d'une autre cellule ✓ - Forum Excel
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Verrouiller cellule excel - Guide
1 réponse
dachiasse
Messages postés
1710
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