Microsoft 365 VBA Problème dans un évènement Before Save

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 !

danielco

XLDnaute Accro
Bonjour,

Je rencontre un problème curieux. J'ai un évènement Before Close déclenchant un évènement Before Save :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  ThisWorkbook.Save

...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim C As Range
  Application.EnableEvents = False
  Application.ScreenUpdating = False
  With Sheets("SAISIE")
    .Unprotect Password:="Jacques1956"
    For I = 7 To .Range("B7", .Cells(.Rows.Count, 2).End(xlUp)).Rows.Count - 2 Step 8
      .Cells(I, 7).MergeArea.UnMerge
      .Cells(I, 2).Resize(8, 69).Sort .Cells(I, 2), xlAscending, Header:=xlNo
      .Cells(I, 7).Resize(8).Merge
    Next I
    .Protect Password:="Jacques1956", AllowSorting:=True, AllowFiltering:=True, AllowFormattingColumns:=True, userinterfaceonly:=False
  End With
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End Sub

La ligne en erreur (erreur 1004) est :
Code:
.Cells(I, 7).MergeArea.UnMerge

L'erreur ne se produit pas sur un enregistrement mais seulement à la fermeture.

Le mot de passe de protection des feuille est "Jacques1956".

Pouvez-vous me dépanner ?
Merci d'avance.

Daniel
 

Pièces jointes

Application.EnableEvents = False
Dans votre macro les events sont désactivés. Donc où est le souci ?
Si tu actives les évènements avant d'ouvrir le classeur, ça plante.
Là, je ne comprends pas. On ne peux pas activer quoi que ce soit AVANT d'ouvrir le classeur.
De plus le BeforeSave est indépendant. Pouvez vous préciser ?
 
Si le classeur désactive la gestion des évènements avant de se fermer (avec une erreur), comme c'est mon cas, quand je rouvre le classeur et que je le referme, il n'y a pas d'erreur parce que le "before close" et le "before save" ne s'exécutent pas. On voit que le "before close" s'exécute si un message demande si on veut ou non enregistrer le classeur.
De plus le BeforeSave est indépendant. Pouvez vous préciser ?
Je ne comprends pas ce que tu veux dire ?
 
@sylvanu
Je vais peut-être t'éviter de chercher inutilement. J'ai mis à tort un "ThisWorkbook.save" dans le "before close". Et depuis que je l'ai retiré, je n'ai plus d'erreur ? Donc, si tu constates la même chose, laisse tomber.
Je te remercie pour tes recherches.
Daniel
 
Dernière édition:
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
78
Réponses
4
Affichages
361
Réponses
16
Affichages
1 K
Retour