Erreur d'éxécution 91

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ngambier

XLDnaute Nouveau
Bonjour, j'ai créé une macro qui permet de tranférer des données d'un fichier excel en le fermant vers un autre fichier excel.
Pour cela j'ai mis dans this Workbook, le code suivant:

Private Sub workbook_beforeclose(cancel As Boolean)
Application.Run ("miseajourficherpolyvalent")
End Sub

Et la macro est la suivante:

ub miseajourficherpolyvalent()

Dim classeurSource As Workbook, classeurDestination As Workbook
Set classeurSource = ThisWorkbook
Set classeurDestination = Application.Workbooks.Open("H:\LOGISTIQUE\Conditionnement\Rlt polyvalents.xlsx", , True)
classeurSource.Sheets("Janvier").Range("B28:AT32").Cells.Copy classeurDestination.Sheets("Janvier").Range("B2")
classeurSource.Sheets("Février").Range("B28:AT32").Cells.Copy classeurDestination.Sheets("Février").Range("B2")
classeurSource.Sheets("Mars").Range("B28:AT32").Cells.Copy classeurDestination.Sheets("Mars").Range("B2")
classeurSource.Sheets("Avril").Range("B26:AT30").Cells.Copy classeurDestination.Sheets("Avril").Range("B2")
classeurSource.Sheets("Mai").Range("B26:AT30").Cells.Copy classeurDestination.Sheets("Mai").Range("B2")
classeurSource.Sheets("Juin").Range("B26:AT30").Cells.Copy classeurDestination.Sheets("Juin").Range("B2")
classeurSource.Sheets("Juillet").Range("B26:AT30").Cells.Copy classeurDestination.Sheets("Juillet").Range("B2")
classeurSource.Sheets("Aout").Range("B26:AT30").Cells.Copy classeurDestination.Sheets("Août").Range("B2")
classeurSource.Sheets("Septembre").Range("B26:AT30").Cells.Copy classeurDestination.Sheets("Septembre").Range("B2")
classeurSource.Sheets("Octobre").Range("B26:AT30").Cells.Copy classeurDestination.Sheets("Octobre").Range("B2")
classeurSource.Sheets("Novembre").Range("B26:AT30").Cells.Copy classeurDestination.Sheets("Novembre").Range("B2")
classeurSource.Sheets("Décembre").Range("B26:A30").Cells.Copy classeurDestination.Sheets("Décembre").Range("B2")
classeurSource.Close False

End Sub

Lors de la fermeture du fichier source il ouvre bien le fichier de destination et ensuite il met comme erreur :
Erreur d'éxécution 91
Variable objet ou variable de bloc With non définie.

Pourriez vous m'aider à régler ce problème.

Par avance merci
 
Re : Erreur d'éxécution 91

Bonsoir,
L'évènement BeforeClose est appelé en boucle...
Dans ThisWorkbook...
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MiseAJourFicherPolyvalent
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SaveAsUI = False
End Sub
... et dans un module standard...
Code:
Sub MiseAJourFicherPolyvalent()
Dim wbSource As Workbook, wbDest As Workbook
Set wbSource = ThisWorkbook
Set wbDest = Workbooks.Open("H:\LOGISTIQUE\Conditionnement\Rlt polyvalents.xlsx")
With wbSource
    For i = 1 To 3 'à condition que les onglets soient bien orthographiés !
        .Sheets(MonthName(i)).Range("B28:AT32").Copy wbDest.Sheets(MonthName(i)).Range("B2")
    Next
    For i = 4 To 12
        .Sheets(MonthName(i)).Range("B26:AT30").Copy wbDest.Sheets(MonthName(i)).Range("B2")
    Next
End With
End Sub
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
999
Réponses
11
Affichages
1 K
Réponses
1
Affichages
984
Réponses
2
Affichages
861
Réponses
0
Affichages
2 K
Retour