Erreur lors de la compilation.

Kronny76

XLDnaute Nouveau
Bonsoir à tous,


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.
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Erreur lors de la compilation.

Bonsoir Kronny76, klin89,

Avec un peu de ménage dans le code :

VB:
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

A+
 

Kronny76

XLDnaute Nouveau
Re : Erreur lors de la compilation.

Tout d'abord, je tiens à vous remercier pour vos réponses rapides Klin89 et Grand Chaman Excel ;)

@Klin89 :
En effet, je n'avait pas pensé à cette erreur.

Je vais essayé de voir avec vos suggestions ce que ça peut donner et vous tiens au courant.


EDIT : PARFAIT, la combinaison de vos 2 réponses marche à merveille.
Encore merci !
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
709

Statistiques des forums

Discussions
314 492
Messages
2 110 190
Membres
110 695
dernier inscrit
fabriceseka