VBA - Erreur protection feuille

wizard0147

XLDnaute Occasionnel
Bonjour à tous,

J'essaye de protéger une feuille mais malheureusement une erreur 1004 apparait dans le code dès que je la protège puis utilise la macro associée. Je prends pourtant bien soin de supprimer la protection en début de macro :

Sub
Sheets("Home").Unprotect
....
Sheets("Home").Protect
End Sub

Mais l'erreur apparait sur toutes les lignes du code ressamblant à celle-ci (Et il y en a beaucoup !):

.Validation.Add Type:=xlValidateList, Formula1:="=XXXX"

(où XXX est ule nom d'une plage de cellules sur une autre feuille)

Y'a-t-il un moyen de supprimer cette erreur ?

Merci d'avance
 

wizard0147

XLDnaute Occasionnel
Re : VBA - Erreur protection feuille

Non, je n'ai que ce code dans "ThisWorkBook":

Private Sub Workbook_Open()
Sheets("Home").Protect userinterfaceonly:=True
End Sub

Je joins le fichier excel sans la base de données (trop lourde)
 

Pièces jointes

  • Tableau comparatif.zip
    48.3 KB · Affichages: 22
  • Tableau comparatif.zip
    48.3 KB · Affichages: 22
  • Tableau comparatif.zip
    48.3 KB · Affichages: 20

wizard0147

XLDnaute Occasionnel
Re : VBA - Erreur protection feuille

Voici

Merci encore pour ton aide
 

Pièces jointes

  • Tableau comparatif.zip
    40.3 KB · Affichages: 28
  • Tableau comparatif.zip
    40.3 KB · Affichages: 29
  • Tableau comparatif.zip
    40.3 KB · Affichages: 28
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : VBA - Erreur protection feuille

Re

Aarf, j'ai compris, enfin j'espère, il ne s'agit pas de plage nommée...

Bon en fait c'est bien un problème de protection, pour que cela fonctionne il faut modifier le code dans le module "thisworkbook" ainsi :

Code:
Private Sub Workbook_Open()
Sheets("Home").Protect DrawingObjects:=True, userinterfaceonly:=True
End Sub

A noter, perso j'ai enlevé la procédure "auto_open", éventuellement à placer également dans la procédure "Private Sub Workbook_Open"

@+
 

wizard0147

XLDnaute Occasionnel
Re : VBA - Erreur protection feuille

Je garde la prodécure Auto_Open car je m'en sers également dans une macro qui s'active via un bouton ;)

Par contre pour la protection, en *.xlsm, ca plante toujours ! Au forrmat excel 2003, pas d'erreur mais pas de protection !
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - Erreur protection feuille

Re

bon, une autre solution, vu le code présent dans le module de ta feuille, sur la procédure événementielle, tu la commence ainsi :

Code:
Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Me.Unprotect

et la fini par :

Code:
Me.Protect
Application.EnableEvents = True
End Sub

attention, en cas d'erreur les procédures événementielles seront désactivées, il y aura lieu de les relancer par :

Code:
Application.EnableEvents = True

bonne soirée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote