Appeler un fichier dont le nom est contenu dans une cellule

[Résolu/Fermé]
Signaler
-
 margaux -
Bonjour à tous,

Après avoir parcouru en long en large et en travers le site (il est néanmoins possible que je sois bigleuse ou vraiment pas douée !), je me permets de vous poser cette question (dont on a l'impression que la réponse existe parce que beaucoup de sujets en parle mais non...).
Alors voilà, j'ai créé un menu déroulant contenant une liste de fichiers que j'appelle dans mon classeur. Je voudrai ouvrir le fichier sélectionné uniquement. Son nom est contenu dans la cellule D1... Je copie donc la valeur de cette cellule... Et l'ajoute à mon chemin... Mais voilà : ça ne marche pas.

Sheets("Fichiers pris en compte").Select
Range("D1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Users\Margaux\Documents\PFE\Gestion des Stocks RG - Exemple\Extraction CSI\" & Selection.copy
Cells.Select
ActiveWindow.SmallScroll Down:=-5
ActiveWindow.LargeScroll Down:=-6
Range("A1:J192").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur2").Activate
Sheets("Feuil1").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("K7").Select
End Sub

Auriez-vous une idée de comment faire ?

Merci d'avance et merci à tous pour vos aides bien précieuses.

2 réponses

Messages postés
16039
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
21 octobre 2021
1 548
Bonjour,

si l'extention .xls ou.xlsx n'est pas dans le nom de fichier (D1), le rajouter en bout de Range("D1"): & ".xls"

Sub test()
Sheets("Fichiers pris en compte").Select
Workbooks.Open Filename:= _
"C:\Users\Margaux\Documents\PFE\Gestion des Stocks RG - Exemple\Extraction CSI\" & Range("D1")
Cells.Select
Range("A1:J192").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Classeur2").Activate
Sheets("Feuil1").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("K7").Select
End Sub
Merci ! ça marche trop bien !!! :)