Protection de la feuille gênante mais souhaitée

Bonjour à tous,

Voilà mon problème :

J'ai une liste dans une cellule "CHANGE" qui permet la création d'un "tableau" (coloré, bordure, etc).

Le problème c'est que la feuille de travail est protégée. Du coup, au changement de la cellule "CHANGE", j'ai le message d'erreur : "Cellule protégée, ôtez la protection".

Cette protection est nécessaire pour éviter qu'un utilisateur ne vienne bidouiller le fichier.

Du coup, pour dé-protéger ma feuille, je place un ActiveSheet.Unprotect dans "Worksheet_Change". Mais cela ne fonctionne pas.

Je voudrais réellement que la feuille ne soit dé-protégée qu'un instant, le temps de créer mon tableau; que le programme suive la logique :

Déprotection -> Création tableau -> Protection

Je ne peux pas joindre de fichier (confidentiel) mais voici ma logique d'enchaînement :

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
Application.EnableEvents = False

If Target.Count = 1 Then

    If Not Intersect(Target, Range("CHANGE")) Is Nothing Then
        ActiveSheet.Unprotect
        Call MaMacro
   End If

ActiveSheet.Protect
End Sub
Sub MaMacro ()
ActiveSheet.Unprotect

'Mon code

ActiveSheet.Protect
End Sub

D'avance merci !

bonjour

Question c'est quand tu essaye d’écrire dans la cellule que tu as ce message ou c'est quand tu veux faire un tableau par macro

il y a pour moi déjà deux

activesheet.unprotect

de trop....

fred

Bonjour Fred,

Merci de m'avoir répondu.

J'ai supprimé les ActiveSheet.Protect et .Unprotect qui étaient en surplus

Désormais, j'ai :

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
Application.EnableEvents = False

If Target.Count = 1 Then

    If Target = [CHANGE] Then
            Call MaMacro
    End If

Application.EnableEvents = True
ActiveSheet.Protect
End Sub
Sub MaMacro

'Code de la macro

End Sub

Mon problème ne survient que quand je change ma cellule "CHANGE". Quand j'exécute "MaMacro" manuellement, ça marche sans problème.

première chose il manque un end if a ta fonction...

deuxième chose : as tu été dans les propriétés de la cellule change et décocher la case "vérouillée" ???

car j'ai fait un fichier test avec ton code et cela fonctionne parfaitement si tu as fait ma remarque précédente ... (j'ai mis un msgbox a la place de ton call)

voir le fichier joint Change est la cellule A1 tout le reste de la feuille est verouillée

fred

12classeur2.xlsm (14.52 Ko)

J'avais mal C/c pardon.

Et effectivement, je suis trop bête. J'avais dévérouillée toute la zone de création du tableau... Sauf la cellule "CHANGE"...

Merci d'avoir pris le temps de te pencher sur mon problème !

Rechercher des sujets similaires à "protection feuille genante souhaitee"