Macro dans Excel

Fermé
Denis - 25 avril 2018 à 18:08
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 28 avril 2018 à 22:01
Bonjour,

J'ai développé plusieurs macros dans un tableau excel et celles-ci fonctionnent bien.
Malheureusement, dès que je bétonne la feuille de calcul (mise en place de la protection), les macros ne fonctionnent plus (err 1004). Quelqu'un a-t-il une idée du pourquoi ?

Denis
A voir également:

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
25 avril 2018 à 21:55
Bonjour,

Le béton doit être réservé pour la construction car il n'est pas utile à l'informatique. ;-)

Si tu protèges ta feuille, tu ne peux pas outrepasser les protections que tu as mises que se soit manuellement ou par macro.
Si tu veux dans ta macro insérer des lignes ou autre action protégée, il te faut au préalable déprotéger (Unprotect avec passe éventuel) puis ensuite remettre la protection (Protect avec passe éventuel).
0
D'abord, merci de cette réponse rapide.

Toutes mes macros font effectivement de l'insertion ou suppression de lignes, colonnes ou cellules, et ont été enregistrées (sans développement VBA).
Même quand j'autorise toutes les options (toutes autorisations cochées) avant mise en place de la protection, le problème subsiste.
A quel autre endroit peut-on agir (hors VBA) ?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
26 avril 2018 à 12:56
Bonjour,

A quel autre endroit peut-on agir (hors VBA) ?
puisque tu l'as déjà fait, il ne te reste plus qu'à modifier VBA comme je te l'ai signalé.
0
Bonjour et encore merci de vous pencher sur mon PB,

Donc hors VBA, point de salut ! Ce que j'ai toujours réussi à éviter depuis des années.
Mon PB : il y a une centaine de macros dans ma feuille ! et je ne me sens pas le courage de les reprendre une par une sous VBA pour arriver à mes fins !
Ce problème de protection (insertion lig ou col ou cellule déclarées pourtant autorisées) existe-t-il tjs dans les dernieres versions d'OFFICE (je suis en version 2010) ?

Denis
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
26 avril 2018 à 17:57
Bonjour,

Ce problème de protection
En fait c'est comme toujours, il est très difficile d'avoir le beurre et l'argent du beurre.
Si tu protèges ta feuille c'est pour empêcher les modifs et si tu as une centaine de macros qui font des modifs c'est antinomique : tu demandes à excel de protéger, il protège et s'il ne le faisait pas il serait en faute. Tu ne pourras jamais demander aux nouvelles versions de faire le contraire.
0
Autant je vous remercie de vos réponses actuelles, autant je ne suis pas d'accord sur l'interprétation "beurre et argent du beurre".
Excel propose de protéger une feuille avec un certains nombre de paramètres, dont la possibilité de refuser/accepter entre autres en cas protection l'insertion de ligne. Or, ce paramètre n'agit effectivement pas sur office 2010. Je pense donc qu'il s'agit plus d'un bug (corrigé depuis ?) que d'une mauvaise interprétation.
Ceci dit, ca ne résoud malheureusement pas mon problème, sauf à utiliser la modif proposée que je dois, sous VBA, répercuter sur une centaine de macros !
Je continue donc à tenter de trouver une solution plus souple...
N'hesitez pas si vous avez une nouvelle idée !! .....

En attendant, grand merci à vous
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
26 avril 2018 à 21:05
ce paramètre n'agit effectivement pas sur office 2 010
Ce n'est pas tout à fait vrai car si tu autorises "l'insertion de ligne" tu peux en 2010 insérer des lignes si tu es positionné sur une plage déverrouillée. Par contre si ta plage est verrouillée, manuellement l'insertion n'est pas disponible.

Donc dans ton cas tes insertions ne doivent pas être positionnées correctement dans une plage déverrouillée.
Si bien sûr toutes tes cellules sont verrouillées et que tu n'as pas décoché l'option, tu ne peux pas même manuellement insérer de lignes.
0
Re-bonjour,

Pour tester en final :
- Je n'ai plus aucune cellule verrouillable.
- Toutes mes macros sont déclenchées à partir de clic sur boutons ou formes. Constatant que mes formes étaient elles-mêmes verrouillées (forme ou texte dans "propriétés"), je les ai toutes dévérouillées.
J'ai autorisé toutes les options de protection (insertion de ligne , etc)
.... et ca ne change hélas rien ! Dès que je vérouille, ça bloque !

Je vais retester plus simplement sur une feuille vierge pour essayer de comprendre et cerner le problème ... et je vous tiens au courant. Merci encore..
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
27 avril 2018 à 18:43
Bonsoir,

Un petit exemple d'ajout de lignes ou colonnes avec protection :

https://www.cjoint.com/c/HDBqQxGluWl
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
28 avril 2018 à 22:01
Bonsoir,

Dès que je vérouille, ça bloque !
Je t'ai peut-être trouvé une astuce pour te débloquer.
Tu supprimes ta protection et tu copies cette macro dans un module.
Tu modifies bien sûr le nom de la feuille et le mot de passe. ;-)
Tu la lances et tes macros devraient fonctionner même avec ta feuille protégée.
Public Sub Protéger()
    Sheets("Feuil1").Protect "mot de passe", , , , True
End Sub

Bon test.
0