Fonction RECHERCHEV dans un onglet dont le nom est une variable Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
D
Dach2
Jeune membre
Jeune membre
Messages : 47
Inscrit le : 2 juin 2018
Version d'Excel : 2013 FR

Message par Dach2 » 11 août 2019, 12:58

Bonjour,

Je bute sur la syntaxe de la fonction VLOOKUP ci-dessous.
Merci pour votre aide.
     Set Table = ThisWorkbook.Worksheets("Marchés")
    Const Col As String = "A"
    Dim Table_DerLig As Integer
    
    Table.Select
    Table_DerLig = Cells(Rows.Count, Col).End(xlUp).Row
    
    Dim Formule As String
    Formule = "=VLOOKUP(RC," '& Table & '"!R2C1:R" & Table_DerLig & "C3,3,FALSE)"
    
    ActiveCell.FormulaR1C1 = Formule
Erreur 1004
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 11 août 2019, 14:58

Bonjour,

Sans fichier test ... la correction ne peut concerner que ta syntaxe ...( assez inhabituelle ...)

A toi d'adapter tout cela à ta logique ...
Sub TestFormule()
    Const Col As String = "A"
    Dim Table_DerLig As Integer
    Dim table As String, Formule As String

    table = Worksheets("Sheet1").Name
    Table_DerLig = Cells(Rows.Count, Col).End(xlUp).Row
    Formule = "=VLOOKUP(RC[-1]," & table & "!R[2]C[1]:R[" & Table_DerLig & "]C[3],3,FALSE)"
    ActiveCell.FormulaR1C1 = Formule
End Sub
En espèrant que cela t'aide
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
D
Dach2
Jeune membre
Jeune membre
Messages : 47
Inscrit le : 2 juin 2018
Version d'Excel : 2013 FR

Message par Dach2 » 11 août 2019, 16:20

Bonjour James007,

Mon problème est bien un problème de syntaxe.
Ta proposition, qui consiste à passer de coordonnées absolues en relatives, ne fonctionne pas plus (sauf que l'erreur d'exécution passe de 1004 à 438 !)

Merci quand même.

A tout hasard, je renvoie quand même mon bout de code (qui par erreur était incomplet au premier envoi).
Dim Onglet As Worksheet
    Set Onglet = ThisWorkbook.Worksheets("CAHT")
    
    Dim Table As Worksheet
    Set Table = ThisWorkbook.Worksheets("Marchés")
    Const Col As String = "A"
    Dim Table_DerLig As Integer
    Table.Select
    Table_DerLig = Cells(Rows.Count, Col).End(xlUp).Row
    
    Dim Formule As String
    Formule = "=VLOOKUP(RC," '& Table & '"!R2C1:R" & Table_DerLig & "C3,3,FALSE)"
    
    Onglet.Select
    ActiveCell.FormulaR1C1 = Formule
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 11 août 2019, 16:26

Re,

Le code que tu viens de poster est presque aussi incomplet que le précédent ... :P

Je te conseille de joindre ton fichier test ... :wink:

:joindre:
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
D
Dach2
Jeune membre
Jeune membre
Messages : 47
Inscrit le : 2 juin 2018
Version d'Excel : 2013 FR

Message par Dach2 » 11 août 2019, 16:48

James007,

Mon fichier est trop lourd (statistiques commerciales sur 10 ans !)
Ca n'est que la syntaxe de la formule qui me bloque.

Merci malgré tout.
Bonne soirée.
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 11 août 2019, 17:00

De rien ...
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
D
Dach2
Jeune membre
Jeune membre
Messages : 47
Inscrit le : 2 juin 2018
Version d'Excel : 2013 FR

Message par Dach2 » 16 août 2019, 13:04

Bonjour,

Après plusieurs dizaines de tentatives avec des syntaxes différentes, tout fonctionne à merveille avec la formule suivante :
Formule = "=VLOOKUP(RC[-1]," & Table.Name & "!R2C1:R" & Table_DerLig & "C3,3,FALSE)"
Donc avec la syntaxe " & Table.Name &" et non avec la syntaxe " & Table &", plus naturelle au départ.

Ouf.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message