OVH Cloud OVH Cloud

evaluate avec index & match problème 1er parametre

4 réponses
Avatar
marchepied
Bonjour=20
Dans une macro,j'ai un probl=E8me avec le 1er parametre=20
apr=E8s le match de la ligne commencant par=20
Cells(i, 32) =3D ..............
J'ai fait plusieur essaie et seul le 1er me donne la bonne=20
information: voir ci-dessous les different essai:

1er essai:
cette ligne fonctionne bien, mais cela ne me convient pas=20
car je veux que la macro descende toute la colonne.
Ae2 contient 23 =20
Cells(i, 32) =3D [=3DINDEX(catcli20,MATCH(ae2,catcli2,0))]
Dans Cells(i, 32) je r=E9cup=E9re la bonne information

2eme essai:
cat =3D [ae2]
Cells(i, 32) =3D [=3DINDEX(catcli20,MATCH(" & cat=20
& ",catcli2,0))]
Je r=E9cup=E8re #N/A

3eme essai:
cat =3D [ae2]
Cells(i, 32) =3D [=3DINDEX(catcli20,MATCH(cat,catcli2,0))]
Je r=E9cup=E8re #NOM?

4eme essai:
categ_client2 =3D Cells(i, 31)
Cells(i, 32) =3D [=3DINDEX(catcli20,MATCH(" & Cells(i, 31)=20
& ",catcli2,0))]
Je r=E9cup=E8re #N/A

5eme essai:
Cells(i, 32) =3D [=3DINDEX(catcli20,MATCH((" & "AE" & i=20
& ",catcli2,0))]
Je r=E9cup=E8re #VALEUR!

6eme essai:
Cells(i, 32) =3D [=3DINDEX(catcli20,MATCH((AE " & i=20
& ",catcli2,0))]
Je r=E9cup=E8re #VALEUR!

avez vous une id=E9e pour r=E9soudre ce probl=E8me ?
Merci,
marchepied

4 réponses

Avatar
isabelle
bonjour marchepied,

il faut utiliser la syntaxe longue pour y introduire une variable.

Cells(i, 32) = evaluate("=INDEX(catcli20,MATCH(" & cat & ",catcli2,0))")

isabelle


Bonjour
Dans une macro,j'ai un problème avec le 1er parametre
après le match de la ligne commencant par
Cells(i, 32) = ..............
J'ai fait plusieur essaie et seul le 1er me donne la bonne
information: voir ci-dessous les different essai:

1er essai:
cette ligne fonctionne bien, mais cela ne me convient pas
car je veux que la macro descende toute la colonne.
Ae2 contient 23
Cells(i, 32) = [=INDEX(catcli20,MATCH(ae2,catcli2,0))]
Dans Cells(i, 32) je récupére la bonne information

2eme essai:
cat = [ae2]
Cells(i, 32) = [=INDEX(catcli20,MATCH(" & cat
& ",catcli2,0))]
Je récupère #N/A

3eme essai:
cat = [ae2]
Cells(i, 32) = [=INDEX(catcli20,MATCH(cat,catcli2,0))]
Je récupère #NOM?

4eme essai:
categ_client2 = Cells(i, 31)
Cells(i, 32) = [=INDEX(catcli20,MATCH(" & Cells(i, 31)
& ",catcli2,0))]
Je récupère #N/A

5eme essai:
Cells(i, 32) = [=INDEX(catcli20,MATCH((" & "AE" & i
& ",catcli2,0))]
Je récupère #VALEUR!

6eme essai:
Cells(i, 32) = [=INDEX(catcli20,MATCH((AE " & i
& ",catcli2,0))]
Je récupère #VALEUR!

avez vous une idée pour résoudre ce problème ?
Merci,
marchepied



Avatar
marchepied
ca marche ! merci beaucoup Isabelle.
marchepied

-----Message d'origine-----
bonjour marchepied,

il faut utiliser la syntaxe longue pour y introduire une
variable.


Cells(i, 32) = evaluate("=INDEX(catcli20,MATCH(" & cat
& ",catcli2,0))")


isabelle


Bonjour
Dans une macro,j'ai un problème avec le 1er parametre
après le match de la ligne commencant par
Cells(i, 32) = ..............
J'ai fait plusieur essaie et seul le 1er me donne la
bonne


information: voir ci-dessous les different essai:

1er essai:
cette ligne fonctionne bien, mais cela ne me convient
pas


car je veux que la macro descende toute la colonne.
Ae2 contient 23
Cells(i, 32) = [=INDEX(catcli20,MATCH(ae2,catcli2,0))]
Dans Cells(i, 32) je récupére la bonne information

2eme essai:
cat = [ae2]
Cells(i, 32) = [=INDEX(catcli20,MATCH(" & cat
& ",catcli2,0))]
Je récupère #N/A

3eme essai:
cat = [ae2]
Cells(i, 32) = [=INDEX(catcli20,MATCH(cat,catcli2,0))]
Je récupère #NOM?

4eme essai:
categ_client2 = Cells(i, 31)
Cells(i, 32) = [=INDEX(catcli20,MATCH(" & Cells(i, 31)
& ",catcli2,0))]
Je récupère #N/A

5eme essai:
Cells(i, 32) = [=INDEX(catcli20,MATCH((" & "AE" & i
& ",catcli2,0))]
Je récupère #VALEUR!

6eme essai:
Cells(i, 32) = [=INDEX(catcli20,MATCH((AE " & i
& ",catcli2,0))]
Je récupère #VALEUR!

avez vous une idée pour résoudre ce problème ?
Merci,
marchepied

.





Avatar
marchepied
Bonsoir,
Merci Isabelle pour la réponse, mais ça ne fonctionne pas
tout le temps.
J'ai appliqué la formule avec la syntaxe longue sur
plusieurs colonnes
Ca marche très bien si la colonne est numérique (ex:
cat#)
mais dans d'autre ça, si la colonne est alphanumérique
(ex: catð1) j'obtiens le résultat #NOM?
y-a-t-il quelque chose de spécial à faire si la cellule
est alphanumérique ?
merci pour votre aide.
marchepied

-----Message d'origine-----
bonjour marchepied,

il faut utiliser la syntaxe longue pour y introduire une
variable.


Cells(i, 32) = evaluate("=INDEX(catcli20,MATCH(" & cat
& ",catcli2,0))")


isabelle


Bonjour
Dans une macro,j'ai un problème avec le 1er parametre
après le match de la ligne commencant par
Cells(i, 32) = ..............
J'ai fait plusieur essaie et seul le 1er me donne la
bonne


information: voir ci-dessous les different essai:

1er essai:
cette ligne fonctionne bien, mais cela ne me convient
pas


car je veux que la macro descende toute la colonne.
Ae2 contient 23
Cells(i, 32) = [=INDEX(catcli20,MATCH(ae2,catcli2,0))]
Dans Cells(i, 32) je récupére la bonne information

2eme essai:
cat = [ae2]
Cells(i, 32) = [=INDEX(catcli20,MATCH(" & cat
& ",catcli2,0))]
Je récupère #N/A

3eme essai:
cat = [ae2]
Cells(i, 32) = [=INDEX(catcli20,MATCH(cat,catcli2,0))]
Je récupère #NOM?

4eme essai:
categ_client2 = Cells(i, 31)
Cells(i, 32) = [=INDEX(catcli20,MATCH(" & Cells(i, 31)
& ",catcli2,0))]
Je récupère #N/A

5eme essai:
Cells(i, 32) = [=INDEX(catcli20,MATCH((" & "AE" & i
& ",catcli2,0))]
Je récupère #VALEUR!

6eme essai:
Cells(i, 32) = [=INDEX(catcli20,MATCH((AE " & i
& ",catcli2,0))]
Je récupère #VALEUR!

avez vous une idée pour résoudre ce problème ?
Merci,
marchepied

.





Avatar
isabelle
bonjour ,

avec la fonction MATCH il vaut mieux mettre en place une gestion
d'erreur au cas ou la correspondance ne serait pas trouver.

On Error Resume Next
If Not IsError(Evaluate("=MATCH(" & cat & ",catcli2,0)")) Then
Cells(i, 32) = Evaluate("=INDEX(catcli20,MATCH(" & cat & ",catcli2,0))")
Else
Err.Clear
End If

isabelle


Bonsoir,
Merci Isabelle pour la réponse, mais ça ne fonctionne pas
tout le temps.
J'ai appliqué la formule avec la syntaxe longue sur
plusieurs colonnes
Ca marche très bien si la colonne est numérique (ex:
cat#)
mais dans d'autre ça, si la colonne est alphanumérique
(ex: catð1) j'obtiens le résultat #NOM?
y-a-t-il quelque chose de spécial à faire si la cellule
est alphanumérique ?
merci pour votre aide.
marchepied


-----Message d'origine-----
bonjour marchepied,

il faut utiliser la syntaxe longue pour y introduire une


variable.

Cells(i, 32) = evaluate("=INDEX(catcli20,MATCH(" & cat


& ",catcli2,0))")

isabelle



Bonjour
Dans une macro,j'ai un problème avec le 1er parametre
après le match de la ligne commencant par
Cells(i, 32) = ..............
J'ai fait plusieur essaie et seul le 1er me donne la



bonne

information: voir ci-dessous les different essai:

1er essai:
cette ligne fonctionne bien, mais cela ne me convient



pas

car je veux que la macro descende toute la colonne.
Ae2 contient 23
Cells(i, 32) = [=INDEX(catcli20,MATCH(ae2,catcli2,0))]
Dans Cells(i, 32) je récupére la bonne information

2eme essai:
cat = [ae2]
Cells(i, 32) = [=INDEX(catcli20,MATCH(" & cat
& ",catcli2,0))]
Je récupère #N/A

3eme essai:
cat = [ae2]
Cells(i, 32) = [=INDEX(catcli20,MATCH(cat,catcli2,0))]
Je récupère #NOM?

4eme essai:
categ_client2 = Cells(i, 31)
Cells(i, 32) = [=INDEX(catcli20,MATCH(" & Cells(i, 31)
& ",catcli2,0))]
Je récupère #N/A

5eme essai:
Cells(i, 32) = [=INDEX(catcli20,MATCH((" & "AE" & i
& ",catcli2,0))]
Je récupère #VALEUR!

6eme essai:
Cells(i, 32) = [=INDEX(catcli20,MATCH((AE " & i
& ",catcli2,0))]
Je récupère #VALEUR!

avez vous une idée pour résoudre ce problème ?
Merci,
marchepied



.