Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

RECHERCHV complexe ou Macro ?

9 réponses
Avatar
Jean-Paul V
Bonjour

J’ai dans la colonne A cette fonction qui fonctionnait jusqu’à 5 positions
après j’ai des problèmes je n’arrive pas à rajouter des SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d’abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si ESTNA …
Je fais calcul n = NBCAR(B12)
Et j’essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j’essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu’à n=2
Puis je descends d’une case je regarde le contenu en B si c’est vide je
m’arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l’on n’a pas
trouvé de correspondance, ce qui n’est pas le cas de 81303800.

Bien Amicalement

Jean-Paul

9 réponses

Avatar
Jdel
Bonjour Jean-Paul
Normal, dans une formule, on ne peut pas imbriquer plus de 7 si. Mais
comment faire quand on a plus de 7 conditions à traiter ?
Une solution que j'ai déjà appliqué, merci ChrisV
http://www.excelabo.net/xl/conditions.php#50si

"Jean-Paul V" a écrit dans le message
de news:
Bonjour

J'ai dans la colonne A cette fonction qui fonctionnait jusqu'à 5 positions
après j'ai des problèmes je n'arrive pas à rajouter des
SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d'abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si ESTNA .
Je fais calcul n = NBCAR(B12)
Et j'essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j'essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu'à n=2
Puis je descends d'une case je regarde le contenu en B si c'est vide je
m'arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l'on n'a
pas
trouvé de correspondance, ce qui n'est pas le cas de 81303800.

Bien Amicalement

Jean-Paul



Avatar
Daniel
Bonjour.
Essaie :
=RECHERCHEV(GAUCHE(B19;MAX(SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;0));0;6);SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;0));0;5);SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;0));0;4);SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;0));0;3);SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;0));0;2)))&"*";TABLE;2;0)
Pas testée à fond toutefois.
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour

J'ai dans la colonne A cette fonction qui fonctionnait jusqu'à 5 positions
après j'ai des problèmes je n'arrive pas à rajouter des
SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d'abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si ESTNA .
Je fais calcul n = NBCAR(B12)
Et j'essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j'essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu'à n=2
Puis je descends d'une case je regarde le contenu en B si c'est vide je
m'arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l'on n'a
pas
trouvé de correspondance, ce qui n'est pas le cas de 81303800.

Bien Amicalement

Jean-Paul



Avatar
SL
Bonjour

Si j'ai bien compris, un exemple ici : http://cjoint.com/?ltqji5Lxlj

=RECHERCHEV("*";RECHERCHEV(GAUCHE($C$2;NBCAR($C$2)+1-LIGNE(INDIRECT("1:"&NBCAR($C$2))))&"*";A:A;1;0);1;0)
en matricielle sur 2 lignes (je ne sais pas pourquoi ça ne marche pas sur
une ligne)
avec le texte cherché en C2

Stéphane

"Jean-Paul V" a écrit dans le message
de news:
Bonjour

J'ai dans la colonne A cette fonction qui fonctionnait jusqu'à 5 positions
après j'ai des problèmes je n'arrive pas à rajouter des
SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d'abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si ESTNA .
Je fais calcul n = NBCAR(B12)
Et j'essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j'essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu'à n=2
Puis je descends d'une case je regarde le contenu en B si c'est vide je
m'arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l'on n'a
pas
trouvé de correspondance, ce qui n'est pas le cas de 81303800.

Bien Amicalement

Jean-Paul



Avatar
Jean-Paul V
Bonjour

Et merci pour cette formule bizarre , je vais me la mettre de coté ,mais
cela ne répond pas à mon problème puisque ma table a 2 colonnes et la votre
raisonne sur une seule colonne , de plus une fois la formule écrite il faut
que je puisse la copier et qu'elle marche en interrogeant la cellule plus bas
en adresse relative .
@+


Bonjour

Si j'ai bien compris, un exemple ici : http://cjoint.com/?ltqji5Lxlj

=RECHERCHEV("*";RECHERCHEV(GAUCHE($C$2;NBCAR($C$2)+1-LIGNE(INDIRECT("1:"&NBCAR($C$2))))&"*";A:A;1;0);1;0)
en matricielle sur 2 lignes (je ne sais pas pourquoi ça ne marche pas sur
une ligne)
avec le texte cherché en C2

Stéphane

"Jean-Paul V" a écrit dans le message
de news:
Bonjour

J'ai dans la colonne A cette fonction qui fonctionnait jusqu'à 5 positions
après j'ai des problèmes je n'arrive pas à rajouter des
SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d'abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si ESTNA .
Je fais calcul n = NBCAR(B12)
Et j'essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j'essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu'à n=2
Puis je descends d'une case je regarde le contenu en B si c'est vide je
m'arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l'on n'a
pas
trouvé de correspondance, ce qui n'est pas le cas de 81303800.

Bien Amicalement

Jean-Paul








Avatar
Jean-Paul V
Bonjour Daniel

J'ai essayé sur 81303801 la valeur donnée par la formule n'est pas bonne
elle donne *NOMAP au lieu de 4301FR ( voir la TABLE )




Bonjour.
Essaie :
=RECHERCHEV(GAUCHE(B19;MAX(SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;0));0;6);SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;0));0;5);SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;0));0;4);SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;0));0;3);SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;0));0;2)))&"*";TABLE;2;0)
Pas testée à fond toutefois.
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour

J'ai dans la colonne A cette fonction qui fonctionnait jusqu'à 5 positions
après j'ai des problèmes je n'arrive pas à rajouter des
SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d'abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si ESTNA .
Je fais calcul n = NBCAR(B12)
Et j'essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j'essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu'à n=2
Puis je descends d'une case je regarde le contenu en B si c'est vide je
m'arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l'on n'a
pas
trouvé de correspondance, ce qui n'est pas le cas de 81303800.

Bien Amicalement

Jean-Paul








Avatar
Jean-Paul V
Bonjour
Merci pour la réponse je vais de suite l'étudier


Bonjour Jean-Paul
Normal, dans une formule, on ne peut pas imbriquer plus de 7 si. Mais
comment faire quand on a plus de 7 conditions à traiter ?
Une solution que j'ai déjà appliqué, merci ChrisV
http://www.excelabo.net/xl/conditions.php#50si

"Jean-Paul V" a écrit dans le message
de news:
Bonjour

J'ai dans la colonne A cette fonction qui fonctionnait jusqu'à 5 positions
après j'ai des problèmes je n'arrive pas à rajouter des
SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d'abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si ESTNA .
Je fais calcul n = NBCAR(B12)
Et j'essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j'essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu'à n=2
Puis je descends d'une case je regarde le contenu en B si c'est vide je
m'arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l'on n'a
pas
trouvé de correspondance, ce qui n'est pas le cas de 81303800.

Bien Amicalement

Jean-Paul








Avatar
Daniel
J'ai essayé sur 81303801 la valeur donnée par la formule n'est pas bonne
elle donne *NOMAP au lieu de 4301FR ( voir la TABLE )


Ta formule donne également *NOMAP.
Daniel

Avatar
Daniel
OK, j'avais mal lu l'énoncé.
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour Daniel

J'ai essayé sur 81303801 la valeur donnée par la formule n'est pas bonne
elle donne *NOMAP au lieu de 4301FR ( voir la TABLE )




Bonjour.
Essaie :
=RECHERCHEV(GAUCHE(B19;MAX(SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;0));0;6);SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;0));0;5);SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;0));0;4);SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;0));0;3);SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;0));0;2)))&"*";TABLE;2;0)
Pas testée à fond toutefois.
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour

J'ai dans la colonne A cette fonction qui fonctionnait jusqu'à 5
positions
après j'ai des problèmes je n'arrive pas à rajouter des
SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d'abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si
ESTNA .
Je fais calcul n = NBCAR(B12)
Et j'essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j'essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu'à n=2
Puis je descends d'une case je regarde le contenu en B si c'est vide je
m'arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l'on n'a
pas
trouvé de correspondance, ce qui n'est pas le cas de 81303800.

Bien Amicalement

Jean-Paul










Avatar
Daniel
OK, j'avais mal compris l'énoncé.
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour Daniel

J'ai essayé sur 81303801 la valeur donnée par la formule n'est pas bonne
elle donne *NOMAP au lieu de 4301FR ( voir la TABLE )




Bonjour.
Essaie :
=RECHERCHEV(GAUCHE(B19;MAX(SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;0));0;6);SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;0));0;5);SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;0));0;4);SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;0));0;3);SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;0));0;2)))&"*";TABLE;2;0)
Pas testée à fond toutefois.
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour

J'ai dans la colonne A cette fonction qui fonctionnait jusqu'à 5
positions
après j'ai des problèmes je n'arrive pas à rajouter des
SI(ESTNA(RECHERCHEV
??:

=SI(ESTNA(RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));SI(ESTNA(RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));VRAI;RECHERCHEV(GAUCHE(B19;2)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;3)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;4)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;5)&"*";TABLE;2;FAUX));RECHERCHEV(GAUCHE(B19;6)&"*";TABLE;2;FAUX))

Comment remplacer cela par une macro ?

Un truc dans le genre
Etant dans la colonne A je fais d'abord un :
=RECHERCHEV(B12;TABLE;2;FAUX) si je trouve #NA ( je fais donc si
ESTNA .
Je fais calcul n = NBCAR(B12)
Et j'essaie ensuite un :
= RECHERCHEV(GAUCHE(B12;n-1)&"*" si je trouve #NA ,je fais un n=n-1
Et j'essaie le suivant = RECHERCHEV(GAUCHE(B12;n-1)&"*"
Ainsi de suite jusqu'à n=2
Puis je descends d'une case je regarde le contenu en B si c'est vide je
m'arrête sinon je refais la même chose.

La TABLE a cette allure en résumé car elle fait + de 200 lignes:

1* *NOMAP
2* *NOMAP
29* *NOMAP
3* *NOMAP
8* *NOMAP
80101 *NOMAP
803012 *NOMAP
803019 8030FR
80302 8100FR
81000* 8030FR30
81001 8100FR
810010 8100FR
812* *NOMAP
813* *NOMAP
81303800 *NOMAP
81303801 4301FR
81303802 1040FR
81401 8140FR
82* *NOMAP

1* veut dire commence par 1 ; 813* commence par 813 lorsque l'on n'a
pas
trouvé de correspondance, ce qui n'est pas le cas de 81303800.

Bien Amicalement

Jean-Paul