Validation liste déroulante Excel

Résolu/Fermé
clenite Messages postés 7 Date d'inscription lundi 26 septembre 2016 Statut Membre Dernière intervention 26 septembre 2016 - 26 sept. 2016 à 10:55
clenite Messages postés 7 Date d'inscription lundi 26 septembre 2016 Statut Membre Dernière intervention 26 septembre 2016 - 26 sept. 2016 à 15:39
Bonjour,
J'utillise férquemment des listes déroulantes simples intégrées dans Excel (pas de VBA donc).
Pour la plupart, j'utilise aussi la fonction "Validation" pour empêcher la saisie erronée.
ça marche très bien du moment que l'utilisateur "TAPE" une valeur dans la cellule (si c'est faux, ça bloque). Par contre, ça ne fonctionne plus si l'utilisateur "TIRE" la liste avec la propriété d'incrémentation automatique d'Excel.
Exemple: ma liste contient Toto01, Toto02, Toto03, Titi01, Titi02, Titi03, Titi04, Tutu01, Tutu02.
Si je tape Toto04, ou Titi05 etc... j'aurai le message d'erreur que j'ai indiqué sous validation (+blocage si ARRET), puisqu'ils n'appartiennent pas à ma liste. MAIS si Toto02, Tot03 sont déjà rentrés (en A1, A2 par ex) et que je tire la formule avec la souris en A3, A4 etc..., eh bien je me retrouve avec Toto04, Toto05 .... parfaitement acceptés (bien que toutes les cellules de la colonne A soient concernées par la validation, avec "appliquer ces modif. aux cellules de paramètres identiques").
Comment étendre le processus de contrôle non seulement aux données que je tape, mais aussi à celles qui sont rentrés par extension automatique des cellules?
Faut-il passer par VBA ou un contrôles activeX?
Merci
A voir également:

4 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 26/09/2016 à 13:29
Re,

alors si tu as tes plages nommées exemple toto1, toto2 etc

si tu crées ta première liste de validation en H3 par exemple si non il faudra adapter la formule
la formule pour appeler ta liste de validation est =INDIRECT("toto"&LIGNE()-2)
ensuite il faut parler le même langage et "la petite croix en bas à droite d'une cellule pour générer une suite logique" s'appelle l'incrémentation
donc tu incrémentes ta formule vers le bas et la validation fera référence sur la deuxième cellule à toto2 puis toto3 etc ...
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
1
clenite Messages postés 7 Date d'inscription lundi 26 septembre 2016 Statut Membre Dernière intervention 26 septembre 2016
Modifié par clenite le 26/09/2016 à 14:10
Merci, mais je ne veux pas utiliser une formule pour rentrer mes données. En fait, la "liste" fait référence à une grande base de données "clients", chaque enregistrement étant identifié en 1ere colonne par une code unique (nom client et 2-3 chiffres :le fameux Toto01...etc).
Ensuite, le fichier est envoyé à différentes personnes qui chacune va fournir de nouvelles informations en lien avec ces clients. Le seul dénominateur commun est son nom unique (ils ne s'emcombrent pas de toutes les autres infos, non nécessaires à leur niveau). Si cette personne rentre par erreur un code-client inexistant, je ne pourrai pas ensuite récupérer les infos nécessaires et les compiler à ma base de donnée initiale (j'ai plein de formules de type recherchev...) qui vont créer différents tableaux spécifiques.
Le problème est que les personnes à qui j'envoie le fichier utilisent souvent des codes-clients qui se suivent, et pour éviter de tout taper, utilisent l'incrémentation automatique...
Ils n'ont donc pas l'alerte qui les prévient que ce code n'existe pas dans ma base de données
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
26 sept. 2016 à 15:01
Bonjour
pour faire simple, vous pouvez peut être signaler les codes, inexistants par une alarme mise en forme conditionnelle, formatant par ex la, cellule en rouge si le code n'existe pas:
MFC par formule, avec le champ des références nommés:
foprmule:
=NB.SI(nom du champ;adresse cell)=0
crdlmnt
0
clenite Messages postés 7 Date d'inscription lundi 26 septembre 2016 Statut Membre Dernière intervention 26 septembre 2016 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
26 sept. 2016 à 15:12
Super. C'est pour l'instant la solution la plus facile!! Je n'avais pas pensé à combiner la validation avec la mise en forme conditionnelle..
Merci
0
clenite Messages postés 7 Date d'inscription lundi 26 septembre 2016 Statut Membre Dernière intervention 26 septembre 2016 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
26 sept. 2016 à 15:39
Je viens de tester sur mon fichier exemple-bidon
Ca marche!
Il faut juste que j'informe les utilisateurs que si la cellule vire au rouge, il y a un souci avec le code d'entrée (mais ça doit être assez "évident", non ?)
crdmnt ;-)
0
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
26 sept. 2016 à 15:17
Bonjour clenite.

C'est normal : La validation des données est un contrôle des saisies de données au clavier. Pour tout autre mode d'entrée de données, elle est inopérante.
Tu dois spécifier aux utilisateurs de ton fichier qu'il est strictement interdit "pour éviter de tout taper,
qu'ils
utilisent l'incrémentation automatique
".
Ou alors tu définis un autre type de codage, par exemple 01Toto au lieu de Toto01 ... c'est encore le mieux !

Cordialement.
1
clenite Messages postés 7 Date d'inscription lundi 26 septembre 2016 Statut Membre Dernière intervention 26 septembre 2016
26 sept. 2016 à 15:29
Merci.
Au moins c'est clair.
Le truc des codages, ce n'est pas moi qui l'ai inventé. Il existait bien avant que je ne gère ce type de base de données (j'ai déjà modifié les 1, 2,3 en 01, 02, 03... pour que lors d'un tri croissant les 10, 11, 12....ne viennent pas entre le 1 et le 2! c'était déjà une "révolution"). Les codes reviennent d'année en année, difficile
a) de changer les mentalités
b) de comparer les données sur différentes années avec un code différent (bon je peux faire des recherches de strings et inverser nom/chiffre... (du style DROITE, REMPLACER etc...). encore faisable....
Ton idée d'inverser les codes est sûrement à long temre LA solution. Pour l'instant, je pense que l'astuce de Vaucluse fera l'affaire. Si la cellule vire au rouge, "ils" comprendront bien que qchose cloche! :-)
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
26 sept. 2016 à 11:12
Bonjour,

pour ma part je n'ai pas tout compris, crée un exemple de fichier anonymisé avec un exemple de ce qui se passe ou ce que tu souhaites faire et joint le à la discussion
1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies dans une réponse
0
Kunkero85 Messages postés 11 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 1 octobre 2016
26 sept. 2016 à 12:41
Ce qu'elle veut dire je pense, c'est que le contrôle ne se fait plus si au lieu de rentrer l'information manuellement, elle utilise la petite croix en bas à droite d'une cellule pour générer une suite logique (toto1, toto2, toto3... Janvier, Février, Mars...)

Bon je n'ai pas la solution pour autant, désolé :x
0
clenite Messages postés 7 Date d'inscription lundi 26 septembre 2016 Statut Membre Dernière intervention 26 septembre 2016
26 sept. 2016 à 13:13
Exactement!!, Kunkero85 a compris la question
Désolée, je n'ai pas pu attacher le fichier. Le firewall de mon entreprise ne me permet pas d'accéder à des clouds. Je le ferai ce soir depuis mon ordi privé!
0
clenite Messages postés 7 Date d'inscription lundi 26 septembre 2016 Statut Membre Dernière intervention 26 septembre 2016
26 sept. 2016 à 13:23
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
26 sept. 2016 à 13:43
Bonjour à tous,

Tu peux effectuer un contrôle de la valeur des cellules modifiées et effacer celles qui n'appartiennent pas à la liste.
Pour cela, j'ai utilisé la procédure évènementielle Worksheet.Change.
Pour la visualiser, clic droit sur l'onglet "Feuil1" puis Visualiser le code.
https://www.cjoint.com/c/FIAlQgytjIp

A+
0