[Excel-VBA] Erreur 1004 Feuille protégée / ôter la protection, modifier contenu

Résolu
alex90vba - 16 déc. 2012 à 00:53
 alex90vba - 16 déc. 2012 à 16:44
Bonsoir,

J'ai un classeur avec la Feuil1 protégée à l'ouverture du classeur.
Sur cette feuille, j'ai ajouté un bouton "enregistrer" associé à une macro.

L'idée est
- d'ôter la protection de la Feuil1
- écrire l'heure de la sauvegarde dans la cellule A1 de la Feuil1
- enregistrer le fichier (le classeur Excel)
- ré-activer la protection de la Feuil1

Je vous joins le fichier avec mon code :
http://cjoint.com/?BLqaYHQz5ga

Je ne sais pas pourquoi l'erreur 1004 survient.

Voici le message obtenu :

[i]Erreur d'exécution '1004' :
La cellule ou le graphique est protégé et en lecture seule.
Pour modifier une cellule ou un graphique protégé, ôtez la protection avec la commande Ôter la protection de la feuille (onglet Révision, groupe Modification). Vous devrez peut-être taper un mot de passe./i

Bien sûr, je sais ôter la protection dans le menu Excel mais ce n'est pas ça que je veux faire. Donc ce message du débogage ne m'éclaire pas beaucoup...

Merci pour votre aide !

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 223
16 déc. 2012 à 10:51
Bonjour,
Pourquoi faire un bouton "enregistrer" et en même temps utoiliser la procédure évènementielle Workbook_BeforeSave (qui ne comprend pas d'instruction d'annulation dans ton code) ?
Le bouton suffirait (avec le code de l'autre)
Essaye par ailleurs de mettre un
DoEvents
juste après
Workbooks("Classeur1test").Sheets("Feuil1").Range("A1").Value = "heure de la sauvegarde : " & Time
Si ne marche toujours pas, c'est que tu as autre chose qui, dans ton code, "coince". Peut-être une remise de la protection dans un évènement Change (qui se déclenche lorsque tu reremplis la cellule A1) ou ailleurs encore.
Essaye alors (tout ton code étant mis dans le bouton "enregistrer") de commencer par Application.EnableEvents = False

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
1