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

trouver une info dans un tableau VBA

18 réponses
Avatar
Bruno
Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon tableau
VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir pointer sur
les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou type
mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno

10 réponses

1 2
Avatar
isabelle
bonjour Bruno,

il faut modifier cette ligne :

tblo = Range("a1:a6").Value

isabelle

Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon tableau
VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir pointer sur
les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou type
mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno




Avatar
Bruno
Bonjour Isabelle,
Merci pour ta réponse.

OK je comprends, donc, je fais 2 tableaux, range("a1:a6") et range("a1:d6")
et je me sers alors du premier pour trouver l'indice "ligne" utile pour
trouver mes données dans le second..
N'y a t'il pas moyen de n'en faire qu'un seul ?
Encore merci pour ton idée.
a+++
Bruno


"isabelle" a écrit dans le message de news:

bonjour Bruno,

il faut modifier cette ligne :

tblo = Range("a1:a6").Value

isabelle

Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon
tableau VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir
pointer sur les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou type
mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno




Avatar
isabelle
bonjour Bruno,

la plage recherche (tbloRech) peut être défini à l'aide de la plage (tblo):

Dim tblo As Range, tbloRech As Range
Set tblo = Range("a1:d6")
Set tbloRech = Range(Cells(1, 1), Cells(tblo.Rows.Count, 1))
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur, tbloRech, 0) - 1)

isabelle

Bonjour Isabelle,
Merci pour ta réponse.

OK je comprends, donc, je fais 2 tableaux, range("a1:a6") et range("a1:d6")
et je me sers alors du premier pour trouver l'indice "ligne" utile pour
trouver mes données dans le second..
N'y a t'il pas moyen de n'en faire qu'un seul ?
Encore merci pour ton idée.
a+++
Bruno


"isabelle" a écrit dans le message de news:


bonjour Bruno,

il faut modifier cette ligne :

tblo = Range("a1:a6").Value

isabelle


Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon
tableau VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir
pointer sur les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou type
mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno









Avatar
jps
et pi moi, ce que je ne comprends pas là-dedans, c'est le -1 dans :

test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)

à vot'bon coeur, mamzelle isabelle
jps


"isabelle" a écrit dans le message de news:

bonjour Bruno,

il faut modifier cette ligne :

tblo = Range("a1:a6").Value

isabelle

Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon
tableau VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir
pointer sur les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou type
mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno




Avatar
Bruno
Un grand merci.
A+++
Bruno

"isabelle" a écrit dans le message de news:

bonjour Bruno,

la plage recherche (tbloRech) peut être défini à l'aide de la plage
(tblo):

Dim tblo As Range, tbloRech As Range
Set tblo = Range("a1:d6")
Set tbloRech = Range(Cells(1, 1), Cells(tblo.Rows.Count, 1))
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tbloRech, 0) - 1)

isabelle

Bonjour Isabelle,
Merci pour ta réponse.

OK je comprends, donc, je fais 2 tableaux, range("a1:a6") et
range("a1:d6") et je me sers alors du premier pour trouver l'indice
"ligne" utile pour trouver mes données dans le second..
N'y a t'il pas moyen de n'en faire qu'un seul ?
Encore merci pour ton idée.
a+++
Bruno


"isabelle" a écrit dans le message de news:


bonjour Bruno,

il faut modifier cette ligne :

tblo = Range("a1:a6").Value

isabelle


Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon
tableau VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir
pointer sur les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou
type mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno










Avatar
Pierre Fauconnier
Bonjour

Utilise

Sub test()
Dim test As Variant

Dim tblo As Variant, Valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
Valeur = "z"
test = Application.WorksheetFunction.VLookup(Valeur, tblo, 4)
MsgBox test
End Sub



Ok?


--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Bruno" a écrit dans le message de news:
450ee534$0$1218$
Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon
tableau VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir
pointer sur les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou type
mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno



Avatar
isabelle
ban oiyons don,
c'est l'argument de Equiv
Si la valeur de l'argument type est -1, la fonction EQUIV trouve la plus petite valeur qui est supérieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche
doivent être placées en ordre décroissant...blablabla
mais c'est pas moi qui a choisi, c'était dans l'exemple donné par Bruno
ça va comme ca mon ange ?
isabelle


et pi moi, ce que je ne comprends pas là-dedans, c'est le -1 dans :

test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)

à vot'bon coeur, mamzelle isabelle
jps


"isabelle" a écrit dans le message de news:


bonjour Bruno,

il faut modifier cette ligne :

tblo = Range("a1:a6").Value

isabelle


Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon
tableau VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir
pointer sur les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou type
mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno









Avatar
Fredo P.
"isabelle" a écrit dans le message de news:

ban oiyons don,
c'est l'argument de Equiv
Si la valeur de l'argument type est -1, la fonction EQUIV trouve la plus
petite valeur qui est supérieure ou égale à celle de l'argument

valeur_cherchée. Les valeurs de l'argument matrice_recherche
doivent être placées en ordre décroissant...blablabla
mais c'est pas moi qui a choisi, c'était dans l'exemple donné par Bruno
ça va comme ca mon ange ?


L'ange , y batterait ti pas des ailes désfois?

Avatar
isabelle

L'ange , y batterait ti pas des ailes désfois?


meuh non si peu ;-)
isabelle

Avatar
jps
ben non, ça va pas : comprends toujours rien
jps (equiv à pas grand'chose)

"isabelle" a écrit dans le message de news:

ban oiyons don,
c'est l'argument de Equiv
Si la valeur de l'argument type est -1, la fonction EQUIV trouve la plus
petite valeur qui est supérieure ou égale à celle de l'argument
valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être
placées en ordre décroissant...blablabla
mais c'est pas moi qui a choisi, c'était dans l'exemple donné par Bruno
ça va comme ca mon ange ?
isabelle


et pi moi, ce que je ne comprends pas là-dedans, c'est le -1 dans :

test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)

à vot'bon coeur, mamzelle isabelle
jps


"isabelle" a écrit dans le message de news:


bonjour Bruno,

il faut modifier cette ligne :

tblo = Range("a1:a6").Value

isabelle


Bonjour à tous
j'assigne les données d'un tabeau excel ex :
a 5 1 2
c 9 2 2
z 4 8 2
d 8 3 5
e 1 4 4
j 3 9 1


a un tableau en vba.
Passant dans un autre fichier excel, je voudrais retrouver dans mon
tableau VBA les valeurs a, z, ou d suivant mes besoins afin de pouvoir
pointer sur les valeurs des colonnes qui m'intéresse.
voici un petit bout de code simplifié qui ne donne qu'erreur 1004 ou
type mismatch...


Sub test()
Dim test
Dim tblo As Variant, valeur As String
tblo = Range("a1:d6").Value
Windows("x").Activate
valeur = "z"
test = Application.Evaluate(Application.WorksheetFunction.Match(valeur,
tblo, 0) - 1)
MsgBox test
End Sub

Merci d'avance pour votre aide et vos idée

a+++
Bruno










1 2