Si cellule servie, le nombre de caractère doit être strictement égal à 5 [Résolu]

Signaler
Messages postés
11
Date d'inscription
mardi 23 mars 2021
Statut
Membre
Dernière intervention
9 avril 2021
-
Messages postés
53598
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
-
Bonjour,

https://www.cjoint.com/c/KDilEcLoaHt

Je vous mets le lien vers mon fichier (simplifié pour le forum).
      • Dans la formule 1, en C1, je cherche la formule qui dit :


Si ce qui est indiqué en A1(A1;32;4) est = à REDA OU IDRE
ET si l'année en A2(A2;32;4) >=2015
ALORS j'ai un "code erreur",
Si rien n'est servi en A1 (A1;32;4) alors "OK".

J'ai tenté une 15 aine de formules, mais cela ne fonctionne pas... :(
      • Dans la formule 2, en C3 :


Si A3 (A3;32;5) est servi, alors il doit comporter obligatoirement 5 chiffres.
Sinon code erreur.

Pour la première formule, mon cerveau a complètement saturé :)
Pour la seconde formule, je n'ai aucune idée de la façon de procéder...

Je vous remercie d'avance pour votre précieuse aide :)

9 réponses

Messages postés
53598
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
15 643
Bonjour chère Panda !

Toujours des difficultés à expliquer de manière claire ce que tu veux ...

1) Tu parles de formule en C1 ; dans ton fichier, elle est en B1 !

2) Ce que tu décris comme action de ta formule, c'est
Si ce qui est indiqué en A1(A1;32;4) est = à REDA OU IDRE ET si l'année en A2(A2;32;4) >=2015 ALORS j'ai un "code erreur", Si rien n'est servi en A1 (A1;32;4) alors "OK"
que moi je traduirais ainsi
Si A1 contient moins de 32 caractères alors afficher "OK". Si les 4 derniers caractères de A1 sont "REDA" ou "IDRE" et si l'année en fin de A2 est >=2015, alors afficher le texte "code erreur", sinon afficher "???"
. Est-ce bien cela, ou faut-il corriger quelque chose ?
Messages postés
11
Date d'inscription
mardi 23 mars 2021
Statut
Membre
Dernière intervention
9 avril 2021

Bonjour Raymond :)

Oui, ce n'est jamais très évident de bien expliquer !

1) En colonne B, j'ai fait des premiers filtres pour moi, pour bien voir ce qu'il y a à partir de la colonne A, à partir du caractère 32, car pour des raisons que je ne maîtrise pas, mon application ne prendra en compte que les données de la colonne A,, après les :, donc à partir du caractère 32. C'est pour cela que j'ai précisé (A1;32;4) par exemple.

2) Non pas tout à fait :
Si après les : de A1, donc (A1;32;4), sur 4 caractères, les caractères sont "REDA" ou "IDRE", le reste c'est ça : et si l'année en fin de A2 (donc (A2;32;4) >= 2015 alors "code erreur".
Si après les : de A1, rien n'est saisi c'est "OK"

...J'espère avoir clarifié... sinon vraiment je ne fais pas exprès ! Pardonnez moi !
Messages postés
53598
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
15 643
... donc l'exposé correct du problème est
 Si A1 contient moins de 32 caractères alors afficher "OK". Si les 4 derniers caractères de A1 sont "REDA" ou "IDRE" alors les afficher. Si l'année en fin de A2 est >=2015, alors afficher le texte "code erreur", sinon afficher "?"
Nous sommes d'accord ?
Dans ce cas la formule sera
=SI(NBCAR(A1)<32;"OK"; SI(CNUM(STXT(A2;32;4))>2014;"code erreur"; SI(OU(STXT(A1;32;4)= "REDA";STXT(A1;32;4)="IDRE");STXT(A1;32;4);"je réfléchis à un message !")))
1) Excel regarde d'abord si A1 contient moins de 32 caractères, et affiche alors "OK" ;
2) sinon Excel regarde la date en A2 ; si elle dépasse 2014 alors "code erreur" s'affiche ;
3) sinon Excel lit les derniers caractères de A1 et les affiche s'il s'agit de REDA ou IDRE ; mais tu n'as pas indiqué ce qu'il faut afficher s'il s'agit d'un autre texte !

ATTENTION ! Si tu désires tester la présence de REDA/IDRE avant de gérer la date, il faut intervertir les deux tests dans la formule ...
Messages postés
53598
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
15 643
Si A3 (A3;32;5) est servi, alors il doit comporter 5 chiffres. Sinon code erreur
:
=SI(ET(NBCAR(STXT(A3;32;99))=5;ESTNUM(STXT(A3;32;5)*1));"Oui";"code erreur")
Messages postés
11
Date d'inscription
mardi 23 mars 2021
Statut
Membre
Dernière intervention
9 avril 2021

Merci Raymond.

Le contrôle de la date fonctionne très bien, en revanche, j'ai l'impression que la 2e partie de la formule ne fonctionne pas. Car si je mets REDA ou IDRE je n'ai pas : "je réflechis à un message! (que je voulais aussi écrire "code erreur").

Je voudrais que précisément si on renseigne REDA ou IDRE, il y ait le code erreur "code erreur".

Et si on renseigne un autre code, par exemple LARC, PIOT(j'invente..), il doit y avoir OK.


Et pour la seconde formule que je cherche, as tu une idée ?
C'est à dire qu'à la cellule C3, je voudrais que ce qui est renseigné en A3 après les : il n'y ait exactement 5 caractères. Dans ce cas "OK"
Si moins de 5 caractères ou plus de 5 caractères = "Erreur"

Merci pour ton aide.
Messages postés
11
Date d'inscription
mardi 23 mars 2021
Statut
Membre
Dernière intervention
9 avril 2021

Je n'avais pas vu ta réponse de 16:53, OK super !
Messages postés
53598
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
15 643
Avec les commentaires que j'ai ajoutés à mes formules, et maintenant que tu es parvenue à exprimer exactement ce que tu veux, tu devrais être capable d'écrire convenablement ta formule, non ? Essaie ...
Messages postés
11
Date d'inscription
mardi 23 mars 2021
Statut
Membre
Dernière intervention
9 avril 2021

Bonjour Raymond, j'ai adapté à mon tableau excel et ca fonctionne.

La seconde formule fonctionne également très bien.

Merci beaucoup ! Tu es SUPER !
Messages postés
53598
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
15 643
Tu vois, chère amie ! En s'y mettant à mains, on finit par y arriver ...

Bon week-end.