XL 2016 Obliger la saisie dans une cellule

blond2comet

XLDnaute Nouveau
Bonjour à tous,

Je bataille avec une question, toute bête, et malgré tout, je n'arrive pas à trouver la réponse!!!

Je cherche à obliger la saisie dans une cellule. Peu importe ce qu'on saisit (normalement, du texte mais ça peut aussi être une date...) tant qu'on ne la laisse pas vide.
J'ai essayé avec validation de données, dans tous les sens mais je n'y arrive pas!!!

Merci pour votre aide.
B2C
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour B2C,

il te faudra absolument une procédure qui teste la cellule qui doit être remplie

....... et cette procédure devra (pourra) se déclencher de différentes manières:
- manuellement en cliquant sur un bouton présent sur la feuille
- avant sauvegarde du fichier
- avant l'apéro
- avant un changement de feuille
- .............................

à+
Philippe
 

CHRIS1945

XLDnaute Occasionnel
Bonsoir,
Je te propose deux solutions qui sont toutes les deux implémentées dans le fichier en annexe.
Comme tu n'as pas spécifié la cellule que tu veux compléter, j'ai arbitrairement choisi la cellule A1. A noter que, si dans la pratique, cette cellule est variable, il y aurait moyen de paramétrer l'application pour tester la cellule désirée où qu'elle se trouve.
A savoir :
1 solution : utiliser la Mise En Forme Conditionnelle : cette méthode, simple et sans VBA est passive, va mettre le fond de la cellule en rouge clair si elle ne contient rien. Cela n'oblige pas l'encodeur à compléter la cellule mais cela attire son attention.
Pour paramétrer cela il faut :
- positionner le curseur sur la cellule à tester
- aller sous l'onglet "Accueil" et cliquer à peu près au milieu sur Mise En Forme Conditionnelle.
Ensuite dans le menu qui se présente, cliquer sur la première ligne "Mise en surbrillance des cellules"
-ensuite cliquer dans le second menu sur la ligne 4 "Egal à"
- dans la demande d'instruction qui se propose encoder ""
- valider
La cellule se mettra en rose si vide ("")

2 solution : utiliser le VBA pour contrôler si la cellule est vide au moment où l'opérateur demande de fermer le classeur. C'est une méthode active qui contraindra l'opérateur à entrer quelque chose dans la cellule.
Si elle est vide, le programme fera apparaître un message qui demandera de compléter la cellule.
Ne sachant pas exactement ce que tu veux mettre, j'ai paramétré une zone texte. TANT QUE LA CELLULE SERA VIDE, LE PROGRAMME DEMANDERA DE REMPLIR LA CELLULE.
Une fois l'entrée faite, la fermeture du cl
 

Pièces jointes

  • OBLIGER ENCODAGE.xlsm
    13.8 KB · Affichages: 137

CHRIS1945

XLDnaute Occasionnel
Désolé fausse manœuvre... je continue :
Une fois l'entrée faite, la fermeture du classeur se poursuit normalement et Excel demandera si on désire sauver le classeur et ensuite il le fermera.
Pour faire cela, il faut employer une petite procédure VBA spéciale qui doit se trouver sous les menus Développeur au niveau de "This workbooks"
le paramétrage doit prévoir "Before close" (ce que préconisait Philippe)
Comme s'est embêtant pour la mise au point de devoir toujours sortir du classeur, j'ai d'abord programmé comme un VBA normal sous l'onglet Feuil1 et puis j'ai copié le programme sous l'onglet "This workbooks".
Je t'explique tout cela pour que tu puisses aller consulter le programme et que tu saches quoi faire pour changer la cellule car je doute que ce soit la bonne cellule...
J'ai indiqué dans le programme les lignes qu'il faut adapter pour changer la cellule à tester : il suffit de remplace A1 par le paramètre de la bonne cellule.
N'oublies pas : c'est le programme sous "This workbooks" qui est opérationnel lors de la fermeture du classeur (l'autre doit être déclenché à la demande).
J'ajouterai que tu peux aussi naturellement faire fonctionner les deux solutions en même temps comme dans l'exemple.
J'espère que cela répond à ta demande et n'hésite pas à me revenir si tu ne comprends pas quelque chose ou si tu as des difficultés pour changer la cellule à tester
A+
Chris
 

Discussions similaires

Réponses
28
Affichages
1 K