Récupérer l'adresse complète d'un fichier et d'une zone pour la renseigner

J'utilise actuellement un fichier qui a une liste de produits de références et j'analyse d'autre fichiers avec un Vlookup pour visualiser les références utilisées. Ça je sais faire.

Ce que je souhaite faire, c'est automatiser le renseignement des formules Vlookup avec un Inputbox par exemple ou par un autre moyen comme cité sur le code joint.

J’ai essayé de concaténer l'adresse du fichier avec l'adresse Sheets et Range mais j'ai des erreurs de partout. L’Ideal pour moi serait d'avoir quelque chose comme ça,

With Range("M" & i)
    .Formula = "=VLOOKUP(" & ValeurRecherche & "," & PlageRecherche & " ,1,FALSE)"
    .Value = .Value
  End With

afin que les données soient toujours à jour.

Dans le code ci-dessous, cela ne fonctionne pas non plus.

Le code n'est pas complet, il me faudra ajouter les boucles mais ça je sais faire, je le ferai quand ma première formule fonctionnera.

Sub CopieValeursSources()
'Déclaration des Variables
    Dim WB_Principal 'WB_Principal = fichier principal
    Dim Chemin_FichierExcelSource 'As String
    Dim FichierSource As Workbook
    Dim Nom_FichierSource
    Dim Nom_feuil As String
    Dim Marche As String
    Dim ValeurRecherche As String
    Dim PlageRecherche As Range
    Dim i
    i = 15 'point de depart pour la lecture des references du fichier principal
    Nom_feuil = ActiveWorkbook.ActiveSheet.Name
    WB_Principal = ActiveWorkbook.Name 'Nom du fichier principal avec exention
    'WB_Principal = CreateObject("Scripting.FileSystemObject").GetBaseName(ActiveWorkbook.Name) 'Nom du fichier principal sans exention

'On Error Resume Next
  Windows(WB_Principal).Activate

'Selection du fichier "Source"
  Chemin_FichierExcelSource = Application.GetOpenFilename("Fichiers Excels, *.xls; *.xlsx; *.xlsm", 1, "Selectionner le document Excel issu des études Technique...")

'Ouverture du fichier "Source"
  Set FichierSource = Workbooks.Open(Chemin_FichierExcelSource, 0)
  Windows(FichierSource.Name).Visible = True 'deviendra false quand cela fonctionnera
  Nom_FichierSource = CreateObject("Scripting.FileSystemObject").GetBaseName(ActiveWorkbook.Name)

'Définition en dur des variables utilisées pour la fonction VLookup
  Windows(WB_Principal).Activate
  ValeurRecherche = Sheets(Nom_feuil).Range("C" & i).Value
  Windows(FichierSource.Name).Activate
  Set PlageRecherche = FichierSource.Sheets("Offre Technique").Range("F:F") 'zone pour la recherche, je ne suis pas sur que cela fonctionne à ce niveau là

'Traitement
  Windows(WB_Principal).Activate
  Sheets(Nom_feuil).Select
'  With Range("M" & i)
'    .Formula = "=VLOOKUP(" & ValeurRecherche & "," & PlageRecherche & " ,1,FALSE)"
'    .Value = .Value
'  End With
  Range("M" & i).Value = Application.WorksheetFunction.VLookup(ValeurRecherche, PlageRecherche, 1, False)

    'Fermeture du document Excel Source
    'FichierSource.Close

End Sub

Auriez vous une solution à mon problème?

D'avance merci

Cordialement

Bonjour,

Dans le cas de l'utilisation que tu fais de VLookup() , une simple affectation de valeur suffit !

Range("M" & i).Value = Sheets(Nom_feuil).Range("C" & i).Value

car demander à VLookup() de renvoyer la valeur de la première colonne de la plage revient à renvoyer la valeur cherchée (la colonne de recherche est toujours la plus à gauche de la plage)

Bonjour,

Je suis obligé d'utiliser Vlookup car je ne connais pas l'emplacement des references qui peuvent même bouger.

Aujourdhui mon tableau fonctionne très bien.

Mais il est compliqué pour ceux qui ne savent pas de changer les formules pour chaque dossiers principal. Sachant que d'autre colonne peucent etre ajoutées.

ceci est ma formule qui fonctionne:

=IF($C15=".";"";IFNA(VLOOKUP(INDIRECT("A"&ROW());'C:/Documents/HomeShare/Documents/CSGM/Clients/Dome/[Etude technique douille Detancheité CSGM2-PR-000548 (Dome).xlsm]Offre Technique'!$F$13:$K$55;1;0);""))

Merci

Cordialement

Bruno

apercu tableau
Rechercher des sujets similaires à "recuperer adresse complete fichier zone renseigner"