Restriction sur des cellules

Bonjour le Forum ,

s'il vous plait si vous avez une idée sur comment restreindre l'input des cellules Excel, je m'explique :

La cellule doit être composée impérativement de deux parties :

  • 1ère partie avant le séparateur :un nombre >0 et <99 ( deux chiffres maximum)
  • 2ème partie après le séparateur A ou bien B

Pas d'espace entre la saisie

Exemple : 2/A 45/B

Merci d'avance

Bonjour,

Une suggestion : ce serait peut-être plus facile à faire en séparant la saisie sur deux colonnes, avec la validation des données, puis en rédigeant une formule de concaténation sur la colonne finale.

Inconvénient : ça fait deux colonnes supplémentaires

Avantage : ça peut se faire très simplement et sans macro...

Cordialement, Daniel

Bonjour,

Avec une validation personnalisée :

=ET(--GAUCHE(A2;CHERCHE("/";A2)-1)<=99;OU(DROITE(A2;1)="A";DROITE(A2;1)="B"))

Je ne teste pas <0. Il faudrait tomber sur un vicieux qui saisi: '-45/B avec l'apostrophe devant

eric

Dan42153 a écrit :

Bonjour,

Une suggestion : ce serait peut-être plus facile à faire en séparant la saisie sur deux colonnes, avec la validation des données, puis en rédigeant une formule de concaténation sur la colonne finale.

Inconvénient : ça fait deux colonnes supplémentaires

Avantage : ça peut se faire très simplement et sans macro...

Cordialement, Daniel

Bonjouur DAN,

En fait , j'ai déjà pensé à ça mais pour mon projet, le but c'est d'optimiser les deux colonnes en une seule.

Du coup , j'ai besoin d'une formule personnalisée sur la validation des données


eriiic a écrit :

Bonjour,

Avec une validation personnalisée :

=ET(--GAUCHE(A2;CHERCHE("/";A2)-1)<=99;OU(DROITE(A2;1)="A";DROITE(A2;1)="B"))

Je ne teste pas <0. Il faudrait tomber sur un vicieux qui saisi: '-45/B avec l'apostrophe devant

eric

Merciiiiii énormément eriiic , c'est parfait etc'est ce que je cherchais

On c'est croisés, regarde au-dessus

Exemple : 2/A 45/B

--> j'espère que ce sont 2 exemples séparés, "2/A" et "45/B"

Voilà comment je verrais les choses, si "45/B" est dans la cellule A1 :

=ESTNUM(GAUCHE(A1;TROUVE("/";A1)-1)+0) renvoit VRAI ssi 45 est un nombre

=STXT(A1;TROUVE("/";A1)+1;1000)="A" renvoit VRAI ssi on a A en deuxième partie

=STXT(A1;TROUVE("/";A1)+1;1000)="B" renvoit VRAI ssi on a B en deuxième partie

Après, on regroupe tout ca :

ou(STXT(A1;TROUVE("/";A1)+1;1000)="A";STXT(A1;TROUVE("/";A1)+1;1000)="B") si la deuxième partie est un A ou un B

et(ESTNUM(GAUCHE(A1;TROUVE("/";A1)-1)+0);ou(STXT(A1;TROUVE("/";A1)+1;1000)="A";STXT(A1;TROUVE("/";A1)+1;1000)="B")) renvoit vrai si les 2 sont vrai

Après, à la saisie (de la cellule A1), il suffit de mettre une validation conditionnelle, et de mettre la formule ci-dessus : si c'est vrai, il autorise la saisie, sinon, il renvoit un message d'erreur.

J'espère que c'est suffisamment clair pour qu'il soit possible de modifier la formule à convenance.

Edit : déjà, je suis grillé, et en plus, j'ai oublié les >0 <99 ... Ca en fait des conditions ... D'un autre coté, il faut aussi que eriiic en ajoute :p

eriiic a écrit :

Bonjour,

Avec une validation personnalisée :

=ET(--GAUCHE(A2;CHERCHE("/";A2)-1)<=99;OU(DROITE(A2;1)="A";DROITE(A2;1)="B"))

Je ne teste pas <0. Il faudrait tomber sur un vicieux qui saisi: '-45/B avec l'apostrophe devant

eric

eriic , svp , j'ai compris la formule mais lorsque je l'ai appliqué à une cellule , on m'a affiché que cette formule est reconnue comme erronée

Peuwi a écrit :

Exemple : 2/A 45/B

--> j'espère que ce sont 2 exemples séparés, "2/A" et "45/B"

Voilà comment je verrais les choses, si "45/B" est dans la cellule A1 :

=ESTNUM(GAUCHE(A1;TROUVE("/";A1)-1)+0) renvoit VRAI ssi 45 est un nombre

=STXT(A1;TROUVE("/";A1)+1;1000)="A" renvoit VRAI ssi on a A en deuxième partie

=STXT(A1;TROUVE("/";A1)+1;1000)="B" renvoit VRAI ssi on a B en deuxième partie

Après, on regroupe tout ca :

ou(STXT(A1;TROUVE("/";A1)+1;1000)="A";STXT(A1;TROUVE("/";A1)+1;1000)="B") si la deuxième partie est un A ou un B

et(ESTNUM(GAUCHE(A1;TROUVE("/";A1)-1)+0);ou(STXT(A1;TROUVE("/";A1)+1;1000)="A";STXT(A1;TROUVE("/";A1)+1;1000)="B")) renvoit vrai si les 2 sont vrai

Après, à la saisie (de la cellule A1), il suffit de mettre une validation conditionnelle, et de mettre la formule ci-dessus : si c'est vrai, il autorise la saisie, sinon, il renvoit un message d'erreur.

J'espère que c'est suffisamment clair pour qu'il soit possible de modifier la formule à convenance.

Edit : déjà, je suis grillé, et en plus, j'ai oublié les >0 <99 ... Ca en fait des conditions ... D'un autre coté, il faut aussi que eriiic en ajoute :p

Merci pour ton aide PEUWI , mais voici ce que j'ai essayé de faire comme formule dans données->validation de données . Le problème c'est qu'on m'affiche erreur même si la réponse est vrai.

Je ne sais pas c'est quoi le problème exactement. Faudra t-il ajouter une condition au Format de cellule ? pOURRIEZ vous m'aidez SVP

14restriction.xlsx (10.25 Ko)

eriic , svp , j'ai compris la formule mais lorsque je l'ai appliqué à une cellule , on m'a affiché que cette formule est reconnue comme erronée

Oui, c'est normal, fait mine de rien.

Il annonce une erreur car cherche() retourne une erreur si / n'est pas trouvé, et c'est le cas sur une cellule vide.

Ca ne sert à rien de rallonger la formule pour l'éliminer puisque c'est un cas à ne pas valider.

Ce qu'il faut c'est remplacer A2 par la cellule active de la plage sélectionnée où tu veux appliquer la validation.

8classeur2.xlsx (8.90 Ko)
Rechercher des sujets similaires à "restriction"