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

Macro VBA extraction ...(Application.WorksheetFunction.VLookup)

2 réponses
Avatar
MATAMATA
Bonjour, bonjour ,

Je souhaite réaliser une Macro extraction, qui comme son nom l'indique
"extrait" des données d'une base de données ....

J'ai deja ecris le programme qui permet de creer l'endroit où les
données souhaités seront stocker mais je n'arrive pas à faire marcher la
recherchev piloter depuis vb :'(

voila mon chtit programme où ca plante :
**************

XLIGNE = Sheets(NOM).Cells(I, 1)
ActiveWindow.WindowState = xlMinimized
Cells.Select
Application.CutCopyMode = False
ActiveWorkbook.Names.Add Name:="TABLE",
refersToR1C1:="=PR99Y02!R1:R65536"
DETAIL =
Application.WorksheetFunction.VLookup(XLIGNE, TABLE, XXXJ, False)
***************

Donc voila mon probleme est de piloter la formule vlookup dans vba avec
la plage "TABLE" qui contiens mes données, je ne connais malheuresement
pas la sytaxe pour que ca marche :s


nb : xligne et xxxj marche parfaitement :)


merci d'avance pour tout .. MATA

2 réponses

Avatar
Daniel.M
Bonjour,

1.
Application.WorksheetFunction.VLookup(XLIGNE, Range("TABLE"), XXXJ, False)

2.
Le WorksheetFunction.VLookup génère une erreur de programme lorsque la valeur
n'est pas trouvée.
Tu dois donc user de On Error Resume (ou Next, peu importe)

Si tu n'aimes pas cette façon de procéder, tu peux utiliser Application.VLookup

Dim resultat as Variant

resultat = Application.VLookup(...)

If IsError(resultat) Then
' pas trouvé
Else
' trouvé on poursuit
End If

Salutations,

Daniel M.

"MATAMATA" wrote in message
news:%2316w9u$
Bonjour, bonjour ,

Je souhaite réaliser une Macro extraction, qui comme son nom l'indique
"extrait" des données d'une base de données ....

J'ai deja ecris le programme qui permet de creer l'endroit où les
données souhaités seront stocker mais je n'arrive pas à faire marcher la
recherchev piloter depuis vb :'(

voila mon chtit programme où ca plante :
**************

XLIGNE = Sheets(NOM).Cells(I, 1)
ActiveWindow.WindowState = xlMinimized
Cells.Select
Application.CutCopyMode = False
ActiveWorkbook.Names.Add Name:="TABLE",
refersToR1C1:="=PR99Y02!R1:R65536"
DETAIL > Application.WorksheetFunction.VLookup(XLIGNE, TABLE, XXXJ, False)
***************

Donc voila mon probleme est de piloter la formule vlookup dans vba avec
la plage "TABLE" qui contiens mes données, je ne connais malheuresement
pas la sytaxe pour que ca marche :s


nb : xligne et xxxj marche parfaitement :)


merci d'avance pour tout .. MATA


Avatar
MATAMATA
J'ai donc modifier mon prog comme ca : mais cela ne marche et de
succrois plante excel ... a syntaxe de vlookup ne marche pas ...
quelqu'un pourrais t'il me l'expliquer ? ( je suis en excel 97 ) :)

While Cells(I, 1) <> ""
While Cells(2, J) <> ""
XLIGNE = Sheets(NOM).Cells(I, 1)
ActiveWindow.WindowState = xlMinimized
Cells.Select
Application.CutCopyMode = False
ActiveWorkbook.Names.Add Name:="TABLE",
RefersToR1C1:="=PR99Y02!R1:R65536"
DETAIL = Application.VLookup(XLIGNE,
Range("TABLE"), XXXJ, False)
If IsError(DETAIL) Then
MsgBox ("pas trouvé")
Else
MsgBox (" trouvé on poursuit")
End If
ActiveWindow.WindowState = xlNormal
Sheets(NOM).Select
Cells(I, J) = DETAIL
J = J + 1
Wend
J = 3
I = I + 1
Wend
*******
Bonjour,

1.
Application.WorksheetFunction.VLookup(XLIGNE, Range("TABLE"), XXXJ, False)

2.
Le WorksheetFunction.VLookup génère une erreur de programme lorsque la valeur
n'est pas trouvée.
Tu dois donc user de On Error Resume (ou Next, peu importe)

Si tu n'aimes pas cette façon de procéder, tu peux utiliser Application.VLookup

Dim resultat as Variant

resultat = Application.VLookup(...)

If IsError(resultat) Then
' pas trouvé
Else
' trouvé on poursuit
End If

Salutations,

Daniel M.

"MATAMATA" wrote in message
news:%2316w9u$

Bonjour, bonjour ,

Je souhaite réaliser une Macro extraction, qui comme son nom l'indique
"extrait" des données d'une base de données ....

J'ai deja ecris le programme qui permet de creer l'endroit où les
données souhaités seront stocker mais je n'arrive pas à faire marcher la
recherchev piloter depuis vb :'(

voila mon chtit programme où ca plante :
**************

XLIGNE = Sheets(NOM).Cells(I, 1)
ActiveWindow.WindowState = xlMinimized
Cells.Select
Application.CutCopyMode = False
ActiveWorkbook.Names.Add Name:="TABLE",
refersToR1C1:="=PR99Y02!R1:R65536"
DETAIL >>Application.WorksheetFunction.VLookup(XLIGNE, TABLE, XXXJ, False)
***************

Donc voila mon probleme est de piloter la formule vlookup dans vba avec
la plage "TABLE" qui contiens mes données, je ne connais malheuresement
pas la sytaxe pour que ca marche :s


nb : xligne et xxxj marche parfaitement :)


merci d'avance pour tout .. MATA