Après plusieurs recherches et quelques heures de "prise de tête" je n'arrive pas a trouver d'où viens mon erreur. Je me permet donc de solliciter votre aide en espérant ne pas poster un sujet redondant.
Pour information mon niveau en VBA est plutôt moyen, j'ai déjà réalisé une macro mais ne me sens pas encore tout à fait à l'aise dans l'écriture de ce langage.
Rentrons dans le vif du sujet.
Le but de la macro est de récupérer à partir du clic sur un bouton implémenté sur un premier classeur, des données contenues dans la première feuille d'un autre classeur.
J'ai donc, pour le moment, développé la macro de la façon suivante :
lors du clic, cette macro se lance.
Code:
Sub Import()
Dim MonExcel As Excel.Application
Dim MonClasseur As Excel.Workbook
Dim MaFeuille As Excel.Worksheet
Dim MaPlage As Excel.Range
Set MonExcel = New Excel.Application
Set MonClasseur = MonExcel.Workbooks.Open("C:\Users\XXXXXXXXX\CAHIER D'AFFAIRE.xls")
Set MaFeuille = MonClasseur.Worksheets(1)
MaPlage = MaFeuille.Range("B5:O" & [C65536].End(xlUp).Row) 'Ligne rapport d'erreur
MonClasseur.Close
MaPlage.Copy Destination:=ActiveWorkSheets.Range("A6")
End Sub
Lors du débogage, l'erreur "Erreur d'exécution '91' : Variable objet ou variable de bloc With non définie" apparait au niveau de la ligne indiquée.
Il semblerait que le fichier s'ouvre bien (puisque je peux le voir), mais que les différentes variables ne récupèrent pas les valeurs assignées.
Pourriez-vous m'aider à comprendre pourquoi s'il-vous-plait ?
Je vous remercie par avance pour l'attention que vous porterez à ce fil de discussion.
Sub Import()
Dim MonClasseur As Workbook
Dim MaFeuille As Worksheet
Dim MaPlage As Range, PlageDestination As Range
Set PlageDestination = ActiveSheet.Range("A6") 'on défini la plage de destination
Set MonClasseur = Workbooks.Open("C:\Users\XXXXXXXXX\CAHIER D'AFFAIRE.xls")
Set MaFeuille = MonClasseur.Worksheets(1)
Set MaPlage = MaFeuille.Range("B5:O" & [C65536].End(xlUp).Row) 'Ligne rapport d'erreur
MaPlage.Copy Destination:=PlageDestination
MonClasseur.Close 'après la copie on ferme le classeur
End Sub