Importer feuille de calcul à nom variable d'un autre classeur
Bonjour,
Je vous explique le problème auquel je suis confronté.
Je dispose de 2 classeurs, l'un qui me sert à calculer un ensemble de grandeurs financières pour un portefeuille (que j'appellerai classeur 1), et un autre qui possèdent les données nécessaires pour ces calculs (que j'appellerai classeur 2).
Comme le classeur 2 a facilement plus de 20 feuilles correspondant aux 20 portefeuilles différents, je souhaite juste importer la feuille dont j'ai besoin pour mes calculs du portefeuille que je veux analyser à chaque fois du classeur 2 vers le classeur 1.
Ces 20 feuilles ont comme nom le numéro du portefeuille, et j'ai envie de créer un bouton d'import de données en écrivant admettons sur la cellule C15 de mon classeur 1 la feuille que je veux importer du classeur 2. Le problème étant que je ne trouve pas de code qui fonctionne, et voici ce que j'ai fait pour l'instant bien que ça ne compile pas :
Sub Testimp()
' Testimp Macro
Dim portf As Variant
portf = Feuil1.Cells(15, 3).Value
Workbooks.Open Filename:= _
" Classeur 2 .xls". #A modifier
Application.Run "ConnectChartEvents"
Sheets(portf).Activate
ActiveWindow.SmallScroll Down:=-33
Range("G5:BE28").Select
Selection.Copy
Windows("Classeur 1 .xlsm").Activate. #A modifier
Sheets.Add.Name = "Data Echeancier coupons"
ActiveSheet.Paste
End SubJ'ai essayé avec la méthode Range et pareil je n'arrive pas à trouver un bon résultat. Ca me met le message d'erreur "l'indice n'appartient pas à la sélection" ou la macro plante tout simplement.
Je vous remercie d'avance pour votre aide, et j'espère que j'ai été assez clair (difficile à expliquer je l'avoue).
Hello,
A tester :
Sub Testimp()
' Testimp Macro
Dim portf As string
portf = Feuil1.Cells(15, 3).Value
Workbooks.Open Filename:= _
" C:\Le chemin complet\"Classeur 2.xlsx". #A modifier
Application.Run "ConnectChartEvents"
Sheets(portf).Activate
ActiveWindow.SmallScroll Down:=-33
Range("G5:BE28").Select
Selection.Copy
Windows("Classeur 1 .xlsm").Activate. #A modifier
Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Data Echeancier coupons"
ActiveSheet.Paste
End Sub