|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2010 Messages : 70 ![]() |
Salut,
Je souhaite savoir s'il n'existe pas un moyen plus efficace, plus facile à écrire pour la formule suivante: Code :
Elle fonctionne très bien mais comme j'ai souvent de nouvelle erreur possible, je dois la mettre à jour à chaque fois et ce n'est pas hyper pratique. N'y-a-t'il pas d'ailleurs une limite à imbriquer des IF de la sorte? Je me demandais donc s'il existait une façon plus simple de le faire, soit en formule soit en vba dans une fonction. Par avance merci pour votre aide. |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Bonjour,
En VBA une des façon de faire : - tester la présence de "FAILED" ne E2, - faire une boucle sur une plage contenant les messages d'erreurs à tester, en comparant la valeur contenu dans chaque cellule au message d'erreur. - concaténer "ERREUR" et la position du message dans la plage (ou mieux, lire la valeur du code dans une colonne adjacente au message). Idéalement on utilisera des plages nommées pour éviter d'avoir à modifier le code pour ajouter un nouveau code d'erreur. |
|
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
En admettant que ERREUR1, ERREUR2 etc soit le nom de cellules d'une même colonne (dans mon exemple de I1 à I4), le résultat sera donné par la formule matricielle (valider avec Ctrl+Maj+Entrée) Code :
=IF(LEFT(E2;6)="FAILED";"ERREUR"&MATCH(TRUE;LEN(SUBSTITUTE(F2;I1:I4;""))<>LEN(F2);0);"")
__________________
Cordialement. Daniel Citation:
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com