Bonjour à toutes et à tous, accros au VBA sous Excel
Je suis en train de monter un classeur excel dont le but est de comparer deux feuilles entre elles et pointer les différences dans une troisième. Cette partie fonctionne parfaitement, c'est la partie acquisition des données que je souhaite améliorer.
En effet, je souhaiterais avoir un code permettant à l'utilisateur d'obtenir la fenêtre "ouvrir fichier", récupérer le contenu de la feuille 1 de ce fichier (quelque soit son nom, pour des raisons de portabilité de code), le copier et le rapatrier dans une feuille "N" de mon classeur.
J'arrive bien à provoquer l'ouverture du fichier, mais je dois avoir des problèmes pour désigner correctement sur quel fichier je veux faire ma copie, puisque je récupère invariablement des erreurs "Subscript Out of Range"...
Le reste du code est à l'avenant, puisqu'il a été réalisé à l'enregistreur de macro
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
28 Sub N() Dim wb As Workbook, wks As Worksheet 'Vide le contenu de N avant de demander l'ouverture du fichier Sheets("N").Select Cells.Select Selection.ClearContents Range("A1").Select 'Appelle la boite d'ouverture de fichier MonFichier = Application.GetOpenFilename("Fichiers Excel (*.xl*), *.xl*") If MonFichier <> False Then 'Ouvre le fichier spécifié Workbooks.Open Filename:=MonFichier Set wb = Workbooks(MonFichier) Set wks = wb.Sheets(1) 'Détecte le nombre de lignes et crée une zone de sélection Dim LastLig3 As Long LastLig3 = ActiveSheet.Range("A65536").End(xlUp).Row Range("A" & LastLig3 & ":J" & LastLig3).Select Selection.Copy Windows("comparaison.xls").Activate Sheets("N").Select ActiveSheet.Paste End If
Je pense que le problème doit venir de la variable MonFichier, laquelle contient le chemin complet du fichier, et non juste le nom. Peut être faudrait-il que "j'expurge" le chemin de cette variable...
Merci pour vos lumières
Partager