FRACTIONNER.TEXTE et RECHERCHEV en validation de données

Bonjour à tous,

Je suis nouveau sur ce forum, j'espère donc que ce post sera complet et respectueux de vos bonnes pratiques, si ce n'est pas le cas je m'en excuse par avance.

Je souhaite mettre en place une formule de validation qui me permette de vérifier que le contenu d'une cellule est une liste de valeurs séparées par des virgules.

J'ai réussi à trouver une formule qui a le comportement que je désire, comme vous pouvez le voir ci-dessous:

image

La formule que j'ai utilisée est la suivante:

=OU(ESTERREUR(RECHERCHEV(FRACTIONNER.TEXTE(E3;", "); Tableau3[fruit];1;FAUX)))

La réciproque, pour savoir si mon menu est valide serait plutôt:

=ET(NON(ESTERREUR(RECHERCHEV(FRACTIONNER.TEXTE(E3;", "); Tableau3[fruit];1;FAUX))))

Seulement voilà, quand j'essaie d'utiliser cette formule pour de la validation de données custom cela ne fonctionne pas: on dirait que seul le premier élément est pris en considération. J'obtiens en effet le comportement suivant:

- "pomme" est validé

- "pomme, mangue" est validé

- "pamplemousse" est invalidé

- "pamplemousse, pomme" est invalidé

- "pomme, pamplemousse" est validé

J'ai également essayé de mettre en place du formatage conditionnel mais j'ai eu le même genre de comportement.

J'ai tenté de passer les plages de données "B3:B6" plutôt que le nom de la colonne, le résultat est le même.

Lorsque j'utilise les mêmes fonctions séparément:

- utiliser RECHERCHEV seul, en indiquant par exemple que la valeur est valide uniquement si elle est présente dans le tableau "fruits"
- utiliser FRACTIONNER.TEXTE seul en indiquant par exemple que la valeur est valide uniquement si elle est composée de "a" séparés par des virgules

alors les deux validations fonctionnent tout à fait correctement. J'en déduit qu'il n'est pas impossible de valider des données en utilisant ces formules

Par conséquent je ne comprends pas pourquoi la combinaison des deux ne fonctionne pas.

Est-ce qu'un membre de ce forum aurait un élément de réponse ?

Merci d'avance

14test.xlsx (11.86 Ko)

Bonjour,

C'est étrange chez moi votre formule fonctionne correctement.

Je vous propose alternativement celle-ci, mais la votre semblait correcte :

=SOMME(--ESTERREUR(EQUIVX(SUPPRESPACE(FRACTIONNER.TEXTE([@fruits];","));Tableau3[fruit];0)))>0

Je pense que votre erreur vient peut-être du fait que vous avez des espaces entre les mots et les virgules. Je vous propose de procéder comme je l'ai fait avec SUPPRESPACE, qui supprime les espaces en début et fin de chaine. Ainsi vous n'avez pas besoin de mettre ", " [virgule espace] dans la fonction fractionner.texte, et si éventuellement il y a un espace dans la liste de fruits, il ne casse pas la formule.

Mais sinon pour moi votre formule renvoie le bon résultat avec pamplemousse…

@saboh12617 j'ai beau faire, mais entrer ma formule dans la partie "Validation des données" ne donne rien

Cependant votre formule semble fonctionner comme je le souhaite.

Je vous remercie pour votre aide.

Je vous souhaite une bonne journée !

bonsoir

une contribution

cordialement

10plouzier.xlsx (11.70 Ko)
Rechercher des sujets similaires à "fractionner texte recherchev validation donnees"