Verifier la forme du contenu d'un cellule (sans VBA)

Macgiy

XLDnaute Nouveau
Bonjour à tous,

J'explique mon problème, j'ai une cellule qui contient la référence d'un dossier et je voudrais mettre en place un contrôle pour être sur que la codification de la référence soit toujours exacte (souci de la recherche rapide après)

Donc ma référence est de la forme suivante (L=lettre,C=chiffre) : LL-CC/CC-LLLL-LC

J'ai trouvé des solutions avec du VBA mais je préfère faire un contrôle simple et donc je veux savoir si il est possible de contrôler que le contenu respecte bien cette forme la

Merci d'avance
 

Victor21

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Bonjour, Macgiy.

Sans VBA la formule risque d'être longue...
Un début pour contrôler la longueur de la référence, les chiffres et les caractères non alphanum :
=ET(NBCAR(A1)=17;ESTNUM(STXT(A1;4;2)*STXT(A1;7;3)*STXT(A1;17;1));STXT(A1;3;1)="-";STXT(A1;6;1)="/";STXT(A1;10;1)="-";STXT(A1;15;1)="-")
NB :les 7 caractères alphabétiques ne sont pas contrôlés dans ce premier test.
 

Victor21

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Re,

Pour tester également les lettres :
=ET(NBCAR(A1)=17;
ESTNUM(STXT(A1;4;2)*STXT(A1;7;3)*STXT(A1;17;1));
STXT(A1;3;1)="-";STXT(A1;6;1)="/";STXT(A1;10;1)="-";STXT(A1;15;1)="-";
CODE(STXT(A1;1;1))>64;CODE(STXT(A1;2;1))>64;CODE(STXT(A1;11;1))>64;CODE(STXT(A1;12;1))>64;CODE(STXT(A1;13;1))>64;CODE(STXT(A1;14;1))>64;CODE(STXT(A1;16;1))>64;
CODE(STXT(A1;1;1))<123;CODE(STXT(A1;2;1))<123;CODE(STXT(A1;11;1))<123;CODE(STXT(A1;12;1))<123;CODE(STXT(A1;13;1))<123;CODE(STXT(A1;14;1))<123;CODE(STXT(A1;16;1))<123)
renvoie vrai si le n° est valide, et faux dans le cas contraire.

Mais il y a probablement plus simple : attendons la venue des spécialistes des matricielles :)
 

Macgiy

XLDnaute Nouveau
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Merci a toi Victor21 ça me convient très bien et si je comprend bien en la rallongeant un peu je peux en plus contrôler les caractères alphabétiques :)

Edite : Tu m'as devancé je te remercie pour avoir fini de la rallonger.

Effectivement si quelqu'un connait plus court mais moi la ça me convient en l'état c est juste pour affiché un Warning si le format n'est pas bon alors pas grave si c'est un peu long
 

ROGER2327

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Bonjour à tous.


Une autre formule :​
Code:
=SIERREUR(ET(CHERCHE("??-??/??-????-??";A1);
ESTNUM(-(STXT(A1;4;2)&STXT(A1;7;2)&DROITE(A1;1)));
   CODE(STXT(MAJUSCULE(A1);{1;2;10;11;12;13;15};1))>64;
98>CODE(STXT(MAJUSCULE(A1);{1;2;10;11;12;13;15};1)));
FAUX)
À valider normalement par Entrée.​



ℝOGER2327
#7180


Vendredi 6 Pédale 141 (Vers Belges - fête Suprême Quarte)
10 Ventôse An CCXXII, 5,4904h - bêche
2014-W09-5T13:10:37Z
 

Pièces jointes

  • Saisie conforme.xlsx
    12 KB · Affichages: 30
  • Saisie conforme.xlsx
    12 KB · Affichages: 34
  • Saisie conforme.xlsx
    12 KB · Affichages: 30
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Re...


Merci à vous ROGER2327 c est encore plus facile et ça marche parfaitement je viens de l'intégrer à mon excel
Hélas, hélas...
Je m'a gouré grave.
La formule accepte [\-00/00-]^_x-x0. Chelou !

C'est peut-être mieux avec​
Code:
=SIERREUR(ET(CHERCHE("??-??/??-????-??";A1);
  CODE(STXT(A1;{4;5;7;8;16};1))>47;58>CODE(STXT(A1;{4;5;7;8;16};1));
((CODE(STXT(A1;{1;2;10;11;12;13;15};1))>64)=( 91>CODE(STXT(A1;{1;2;10;11;12;13;15};1))))+
((CODE(STXT(A1;{1;2;10;11;12;13;15};1))>96)=(123>CODE(STXT(A1;{1;2;10;11;12;13;15};1))))=1);
FAUX)



ℝOGER2327
#7181


Vendredi 6 Pédale 141 (Vers Belges - fête Suprême Quarte)
10 Ventôse An CCXXII, 6,2068h - bêche
2014-W09-5T14:53:46Z
 

Pièces jointes

  • Saisie conforme.xlsx
    12.4 KB · Affichages: 33
  • Saisie conforme.xlsx
    12.4 KB · Affichages: 30
  • Saisie conforme.xlsx
    12.4 KB · Affichages: 32

ROGER2327

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Suite...


Si, comme c'est souvent le cas dans les codes de référence, on n'accepte que les majuscules :
Code:
=SIERREUR(ET(CHERCHE("??-??/??-????-??";A1);
  CODE(STXT(A1;{4;5;7;8;16};1))>47;58>CODE(STXT(A1;{4;5;7;8;16};1));
((CODE(STXT(A1;{1;2;10;11;12;13;15};1))>64)=( 91>CODE(STXT(A1;{1;2;10;11;12;13;15};1))))=VRAI);
FAUX)

Si, par hasard, on ne veut que des minuscules :
Code:
=SIERREUR(ET(CHERCHE("??-??/??-????-??";A1);
  CODE(STXT(A1;{4;5;7;8;16};1))>47;58>CODE(STXT(A1;{4;5;7;8;16};1));
((CODE(STXT(A1;{1;2;10;11;12;13;15};1))>96)=(123>CODE(STXT(A1;{1;2;10;11;12;13;15};1))))=VRAI);
FAUX)


ℝOGER2327
#7182


Vendredi 6 Pédale 141 (Vers Belges - fête Suprême Quarte)
10 Ventôse An CCXXII, 6,4153h - bêche
2014-W09-5T15:23:48Z
 

ROGER2327

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Re...


Encore merci a toi je vais prendre celui qui accepte uniquement les majuscule ça fera des références plus propres
D'accord, d'autant plus que la formule est plus simple. Mais je m'a encore gouré :
les formules acceptent des chaînes de plus de seize caractères !
Il faut ajouter une condition (Victor21 y avait pensé, lui !) :​

Code:
=SIERREUR(ET(CHERCHE("??-??/??-????-??";A1);NBCAR(A1)=16;
  CODE(STXT(A1;{4;5;7;8;16};1))>47;58>CODE(STXT(A1;{4;5;7;8;16};1));
((CODE(STXT(A1;{1;2;10;11;12;13;15};1))>64)=( 91>CODE(STXT(A1;{1;2;10;11;12;13;15};1))))+
((CODE(STXT(A1;{1;2;10;11;12;13;15};1))>96)=(123>CODE(STXT(A1;{1;2;10;11;12;13;15};1))))=1);
FAUX)
Code:
=SIERREUR(ET(CHERCHE("??-??/??-????-??";A1);NBCAR(A1)=16;
  CODE(STXT(A1;{4;5;7;8;16};1))>47;58>CODE(STXT(A1;{4;5;7;8;16};1));
((CODE(STXT(A1;{1;2;10;11;12;13;15};1))>64)=(91>CODE(STXT(A1;{1;2;10;11;12;13;15};1))))=VRAI);
FAUX)
Code:
=SIERREUR(ET(CHERCHE("??-??/??-????-??";A1);NBCAR(A1)=16;
  CODE(STXT(A1;{4;5;7;8;16};1))>47;58>CODE(STXT(A1;{4;5;7;8;16};1));
((CODE(STXT(A1;{1;2;10;11;12;13;15};1))>96)=(123>CODE(STXT(A1;{1;2;10;11;12;13;15};1))))=VRAI);
FAUX)
Quand on veut aller trop vite, on ne va pas bien...​


ℝOGER2327
#7183


Vendredi 6 Pédale 141 (Vers Belges - fête Suprême Quarte)
10 Ventôse An CCXXII, 6,7457h - bêche
2014-W09-5T16:11:23Z


P.s. : voir la pièce jointe au message #15.
 
Dernière édition:

Macgiy

XLDnaute Nouveau
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Re

L'avant dernier marche il me dit que la référence est bonne mais le dernier il me dit qu'elle est fausse. Etes-vous sur de votre dernière condition concernant la longueur de la chaîne de caractère ?
 

Victor21

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Re,

NBCAR(A1)=16 signifie que le nombre total de caractères (ponctuation incluse) est 16.
N'auriez-vous pas testé la dernière proposition de notre ami perfectionniste avec des majuscules ?
 

ROGER2327

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Re...


Re

L'avant dernier marche il me dit que la référence est bonne mais le dernier il me dit qu'elle est fausse. Etes-vous sur de votre dernière condition concernant la longueur de la chaîne de caractère ?
Euh...
J'espère que je m'a pas encore gouré !
En fait, je ne comprends pas très-bien ce que vous voulez dire... Pouvez-vous fournir un exemple de ce qui coince ?
Merci d'avance !



ℝOGER2327
#7184


Vendredi 6 Pédale 141 (Vers Belges - fête Suprême Quarte)
10 Ventôse An CCXXII, 6,9907h - bêche
2014-W09-5T16:46:40Z
 

ROGER2327

XLDnaute Barbatruc
Re : Verifier la forme du contenu d'un cellule (sans VBA)

Re...


Ah oui si mes références sont avec des lettre majuscules, il aurait fallu écrire en minuscule ?
Exemples :

DonnéesFormule "toutes lettres"
(1[SUP]ère[/SUP] formule)
Formule "MAJUSCULES"
(2[SUP]ème[/SUP] formule)
Formule "minuscules"
(3[SUP]ème[/SUP] formule)
ru-97/24-TUzE-D4VRAIFAUX
(il y a des minuscules)
FAUX
(il y a des majuscules)
RU-97/24-TUZE-D4VRAIVRAI
(il n'y a pas de minuscule)
FAUX
ru-97/24-tuze-d4VRAIFAUXVRAI
(il n'y a pas de majuscule)
ru-97/24-TUzE-D4iiFAUX
(longueur > 16 car.)
FAUXFAUX

Si ce n'est pas ça le problème, précisez...



ℝOGER2327
#7185


Vendredi 6 Pédale 141 (Vers Belges - fête Suprême Quarte)
10 Ventôse An CCXXII, 7,1539h - bêche
2014-W09-5T17:10:10Z
 

Pièces jointes

  • Saisie conforme.xlsx
    16.8 KB · Affichages: 29
  • Saisie conforme.xlsx
    16.8 KB · Affichages: 30
  • Saisie conforme.xlsx
    16.8 KB · Affichages: 31
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 085
Messages
2 085 196
Membres
102 814
dernier inscrit
JLGalley