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

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

  • test 2022 Mise en place des rendez-vous TEST.xlsm
    203.8 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
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 ?
 

danielco

XLDnaute Accro
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 ?
 

danielco

XLDnaute Accro
@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:

Discussions similaires

Réponses
2
Affichages
422

Statistiques des forums

Discussions
314 753
Messages
2 112 520
Membres
111 580
dernier inscrit
fofmoh