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

Fermé
brunotours Messages postés 4 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 6 décembre 2018 - 6 déc. 2018 à 11:21
danielc0 Messages postés 1349 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 21 décembre 2024 - 6 déc. 2018 à 15:39
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 el 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
A voir également:

1 réponse

danielc0 Messages postés 1349 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 21 décembre 2024 155
6 déc. 2018 à 15:39
Bonjour,

Non testé :

Range("M" & i).Formula = "=VLOOKUP(" & ValeurRecherche & "'[" & FichierSource & "]Offre Technique'!F:F,1,FALSE)"


Si ça ne fonctionne pas, est-ce que tu peux poster un lien vers ton classeur ?

Cordialement.

Daniel
0