Bonjour,
lors de la modification de la feuille 36, je souhaites mettre à jour la date de modification en Range("I3") sur une feuille protégée par mot de passe, mais ça bug !!
Message d'erreur VBA :
"Erreur d 'exécution '1004':"
"Erreur définie par l'application ou par l'objet."

En test sur Excel version 97 ou 2010 même problème sur fichier en .xls.
J'ai aussi eu 1 fois ou 2 : "erreur : espace pile insuffisant"

Hors la mise à jour de cellules par exemple en F9, J8... ne pose pas de problème (via un USF)
J'ai cherché différentes solutions mais ne comprend pas le problème.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 
'-----------------------------
'Dans ThisWorkbook
'-----------------------------
Private Sub Workbook_Open()
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    Application.CommandBars("Control Toolbox").Controls(1).Enabled = True  'False
    'PageProtec = Sheets("Parametres").Range("X48")
 
    'boucle sur toutes mes feuilles :
    For Each sh In Sheets
    'Mot de passe pour toutes les feuilles
        sh.Visible = True  ''Attention si feuille non visible, MdP peut-être différent
        sh.Protect Password:=Sheets("Parametres").Range("PageProtect"), UserInterfaceOnly:=True
    Next sh
    Application.ScreenUpdating = True
End Sub
 
'-----------------------------
'Dans feuil36
'-----------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
    With ActiveSheet
        .Unprotect Password:=Sheets("Parametres").Range("PageProtect"), UserInterfaceOnly:=True
        .Range("I3") = Date
        .Protect Password:=Sheets("Parametres").Range("PageProtect"), UserInterfaceOnly:=True
    End With
 
End Sub
Merci pour vos conseils