Bonjour,
Je voudrais copier une plage de données (sélectionnée par l'utilisateur) d'une feuille Excel (ouverte par l'utilisateur) sur une feuille Excel active (celle depuis laquelle on lance la macro).
En gros, les étapes :
1) On lance la macro depuis la feuille "Requête"
2) Elle ouvre le fichier recherché par l'utilisateur
3) L'utilisateur sélectionne la plage à copier
4) L'utilisateur indique dans quelle cellule il veut copier ses données
5) Les données sont copiées
Voici mon code (erreur sur la ligne rouge "Erreur d'exécution 1004 : la méthode PasteSpecial de la classe Range a échoué"):
J'espère que j'ai été assez clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Sub importFichier() Dim wbMyWb As Workbook Dim Nom_Fichier As Variant, wbdest As Variant, nomFeuille As Variant Dim Plage As Range, cell As Range Dim recup As String Dim ligne As Integer, colonne As Integer Set wbdest = ActiveWorkbook Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls") If Nom_Fichier <> False Then Set wbMyWb = Workbooks.Open(Nom_Fichier) wbMyWb.Activate nomFeuille = InputBox("Indiquez le nom de la feuille de classeur où récupérer les données svp :") wbMyWb.Sheets(nomFeuille).Activate Set Plage = Application.InputBox("Sélectionnez la plage à copier :", Type:=8) Plage.Select Selection.Copy wbdest.Activate Worksheets("Requête").Activate recup = Application.InputBox("Entrez le nom de la cellule pour copier la sélection") Sheets("Requête").Range("A10").Select Selection.PasteSpecial wbMyWb.Close wbdest.Activate End If End Sub
Merci de votre aide!
Partager