XL 2010 Problème vba lorsque la feuille est protegée

Linda42

XLDnaute Occasionnel
Bonjour,

J'ai un soucis avec l'exécution de deux boutons de contrôle qui indique une erreur 1004 quand je les exécute, et cela uniquement lorsque la feuille est protégée?
Lorsque j'ôte la protection, aucun message d'erreur.

Ci-dessous le code affecté à la feuille :
Code:
Option Explicit

Const lideb = 70            ' ligne de départ de la recherche de lignes vides
Const lifin = 178          ' dernière ligne --------------------------------
Const covid = "C"           ' colonne vide
Const ZoneI = "$B$5:$I$191" ' zone d'impression

' masque les lignes vides (colonne covid) entre lideb et lifin
Public Sub cacher_lignes_vides()
Dim li As Long, li1 As Long
li1 = lifin
' recherche premiere ligne vide
For li = lideb To lifin
  If Range(covid & li).Value = "" Then li1 = li: Exit For
Next li
If li1 <> lifin Then Rows(li1 & ":" & lifin).Hidden = True
' dessin afficher en premier plan
ActiveSheet.Shapes("afficher").ZOrder msoBringToFront
End Sub

Public Sub afficher_tout()
Rows(lideb & ":" & lifin).Hidden = False
' dessin masquer en premier plan
ActiveSheet.Shapes("masquer").ZOrder msoBringToFront
End Sub

' le dessin de l'imprimate a été nommé "imprimante"
Public Sub Imprimer()
Dim rep
Call cacher_lignes_vides
With ActiveSheet
  .PageSetup.PrintArea = ZoneI
  .PrintPreview
  rep = MsgBox("On imprime ?", vbYesNo, "Impression")
  If rep = vbYes Then .PrintOut
End With
Call afficher_tout
End Sub

Il y a un autre bouton de contrôle qui lui est affecté à une vba dans un module inséré. Aucun pb d'exécution même avec la feuille protégée.

Merci pour votre aide

Cdt
Merci pour
 
Solution
Bonjour Linda,

utilise ActiveSheet.Unprotect AVANT le job ... puis utilise
ActiveSheet.Protect APRÈS le job.

c'est par rapport à une protection simple, sans mot de passe ;
s'il y a un password, ajoute-le après, entre guillemets :


ActiveSheet.Unprotect "toto" ... puis :

ActiveSheet.Protect "toto"

soan

soan

XLDnaute Barbatruc
Inactif
Bonjour Linda,

utilise ActiveSheet.Unprotect AVANT le job ... puis utilise
ActiveSheet.Protect APRÈS le job.

c'est par rapport à une protection simple, sans mot de passe ;
s'il y a un password, ajoute-le après, entre guillemets :


ActiveSheet.Unprotect "toto" ... puis :

ActiveSheet.Protect "toto"

soan
 
Dernière édition:

Linda42

XLDnaute Occasionnel
Bonjour Linda,

utilise ActiveSheet.Unprotect AVANT le job ... puis utilise
ActiveSheet.Protect APRÈS le job.

c'est par rapport à une protection simple, sans mot de passe ;
s'il y a un password, ajoute-le après, entre guillemets :


ActiveSheet.Unprotect "toto" ... puis :

ActiveSheet.Protect "toto"

soan
Bonsoir Soan

Merci infiniment, tout fonctionne, il s'agissait d'une protection sans mot de passe.

Bonne soirée
Linda
 

Statistiques des forums

Discussions
315 093
Messages
2 116 138
Membres
112 669
dernier inscrit
Guigui2502