[résolu] pbl de formule avec INDEX & EQUIV & GAUCHE

pbl de formule avec INDEX & EQUIV & GAUCHE [résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 14-11-2012 à 11:15:34    

Bonjour,  
 
dans monfichiersource.xls, j'ai  des départements à 2 chiffres en colonneA:
01,02,08,51,75, etc...
 
dans monfichierdetraitement.xls, j'ai une feuilA dans laquelle les départements sont stockés à 5 chiffres en colonne J
01500, 02200, 08300, 51100, 75005, etc...
 
un poids est stocké en colonne M
 
je cherche à trouver une valeur en colonne N en fonction du département et poids
 
Voici ma formule qui me retourne #N/A
 

Code :
  1. =INDEX('[monfichiersource.xls]feuilA'!$A$6:$X$123;EQUIV(GAUCHE(J2;2);'[monfichiersource.xls]feuilA'!$A$6:$A$123;0);EQUIV(M2;'[monfichiersource.xls]feuilA'!$A$6:$X$6;0))


 
je ne vois pas ou est le pbl, avez vous une idée ?
 
monfichiersource.xls
http://img703.imageshack.us/img703/2933/sourceow.jpg
 
monfichierdetraitement.xls
http://img4.imageshack.us/img4/6241/exploitb.jpg


Message édité par CARL KEATON le 14-11-2012 à 14:05:54
Reply

Marsh Posté le 14-11-2012 à 11:15:34   

Reply

Marsh Posté le 14-11-2012 à 11:37:19    

Je te propose quelque chose pour trouver ton problème :
évalue les expressions suivantes composant ta grosse fonction :
=EQUIV(GAUCHE(J2;2);'[monfichiersource.xls]feuilA'!$A$6:$A$123;0)
=EQUIV(M2;'[monfichiersource.xls]feuilA'!$A$6:$X$6;0)
 
Si cela te renvoit bien des nombres, repose ton problème avec uniquement la fonction index qui pose problème.
Et plutôt que d'utiliser Index (qui est bizarre comme formule), utilise plutôt indirect qui doit être bien plus simple à déplanter.

Reply

Marsh Posté le 14-11-2012 à 11:44:42    

=EQUIV(GAUCHE(J2;2);'[monfichiersource.xls]feuilA'!$A$6:$A$123;0)  
retoune "N/A
 
=EQUIV(M2;'[monfichiersource.xls]feuilA'!$A$6:$X$6;0)  
retourne une valeur
 
par contre, si je créé une nouvelle colonne dans monfichierdetraitement.xls  
avec les dpt sur 2 chiffres en I:
 
=EQUIV(I2;'[monfichiersource.xls]feuilA'!$A$6:$A$123;0)  
ca me retourne bien une valeur


Message édité par CARL KEATON le 14-11-2012 à 11:45:43
Reply

Marsh Posté le 14-11-2012 à 11:45:37    

A tout hasard, vérifie que tes cellules de départements sont toutes au format texte. Si l'un est du texte, et l'autre un nombre, il ne va pas pouvoir matcher avec les equiv

Reply

Marsh Posté le 14-11-2012 à 11:47:09    

je viens de vérif, toutes les cells sont en format standard

Reply

Marsh Posté le 14-11-2012 à 11:50:34    

Au format standard, la solution par défaut pour saisir 01234, c'est de le considérer comme le nombre 1234. Ce n'est pas le cas dans ta cellule J2 dans ta capture d'écran.
Tu as peut-être écrit '01234, ce qui revient au même que de dire que c'est au format texte.

 

Edit : ha, oui, petit oubli de ma part : gauche va forcément renvoyer une chaine de caractère, donc il faut forcer de l'autre coté un format en chaine de caractères sur $A$6:$A$123


Message édité par Peuwi le 14-11-2012 à 11:52:12
Reply

Marsh Posté le 14-11-2012 à 12:14:39    

excuse, pour faire simple j'ai refait un tableau basique pour expliquer et j'ai omis le formatage.... oups!
 
sachant que si je met un dpt commencant par 0x en format nombre, il sera formaté sans le 0 au début donc ca ne va pas.
 
Est ce que je peux tout passer en texte ?

Reply

Marsh Posté le 14-11-2012 à 13:21:08    

yes you can.
Sauf les formules.
Tu dois aussi avoir 2 fonctions pour convertir un nombre en texte et une suite de chiffres en nombres.

Reply

Marsh Posté le 14-11-2012 à 13:46:33    

j'ai finalement trouvé la solution: gauche renvoi du texte, il suffit donc de faire  EQUIV(GAUCHE(J2;2)*1 pour qu'il soit numérique !
et ca fonctionne ;)


Message édité par CARL KEATON le 14-11-2012 à 13:52:43
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed