Erreur 1004 - impossible de définir la propriété Hidden

Bonjour à tous,

J'ai un petit problème concernant la protection d'une de mes feuilles Excel (feuille : note de calculs). Lorsque je protège ma feuille l'erreur "1004 - impossible de définir la propriété Hidden de la classe range" apparait. Et le débogage me conduit à la ligne de mon module : cellule.EntireRow.Hidden = False

Avez-vous une idée de l'erreur?

Voici mon module :

     Sub Masque_lig()
    Application.ScreenUpdating = False
    Dim cellule As Range
    'ActiveSheet.Unprotect ("motdepasse")
    For Each cellule In Worksheets("note de calculs").Range("M47:M245")
    If cellule.Value = 0 Then
    cellule.EntireRow.Hidden = True
    Else
    cellule.EntireRow.Hidden = False
    End If
    Next cellule
    'ActiveSheet.Protect Password:="motdepasse"
    End Sub

Voici ma feuille :

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

    'ActiveSheet.Unprotect ("motdepasse")

    If Worksheets("Donnees").Range("BR10") = 2000 Then
    With Worksheets("note de calculs")
    lim = .Range("L14")
    s = 1 / 100
    Max = 0
    For i = 0 To lim Step s
    .Range("B54") = i
    If .Range("E54") > Max Then Max = .Range("E54"): maxi = i
    Next i
    .Range("B54") = maxi
    End With
    End If

    If Worksheets("Donnees").Range("BR10") = 2001 Then
    With Worksheets("note de calculs")
    lim = .Range("L14")
    s = 1 / 100
    Max = 0
    For i = 0 To lim Step s
    .Range("B54") = i
    If .Range("E64") > Max Then Max = .Range("E64"): maxi = i
    Next i
    .Range("B54") = maxi
    End With
    End If

    Application.EnableEvents = True

    Call Masque_lig

    'ActiveSheet.Protect Password:="motdepasse"

    End Sub

Personne?

Lorsque je protège ma feuille l'erreur "1004 - impossible de définir la propriété Hidden de la classe range" apparait

c'est normal ta feuille est protégée. La protection de la feuille ne sert-elle pas à eviter tout changement ou parti?

comme tu l'as mis dans ton code enlève la protection de ta feuille en début de code et reprotège la en fin de code.

j'ai testé ça fonctionne.

si non met un fichier exemple stp

enlève la protection de ta feuille en début de code et reprotège la en fin de code.

Bonjour,

Je pensais que c'était ce que j'avais fais. Non?

dans ton code il apparaît comme un commentaire:

  Sub Masque_lig()
    Application.ScreenUpdating = False
    Dim cellule As Range

'ActiveSheet.Unprotect ("motdepasse")

'ton code ......

'ActiveSheet.Protect Password:="motdepasse"
   End Sub

enlève le ' devant .

  Sub Masque_lig()
    Application.ScreenUpdating = False
    Dim cellule As Range

ActiveSheet.Unprotect ("motdepasse")

'ton code ......

ActiveSheet.Protect Password:="motdepasse"
   End Sub

si ce n'est déjà fait

Merci de m'aider

Je viens d'effectuer la modification mais le problème persiste au même endroit.

Si j’enlève le Protect/Unprotect et le mot de passe de ma feuille tout va bien. Si je met un mot de passe, le problème apparaît (ce qui est normal) mais ajouter la dé-protection/protection dans la macro n'y change rien (même sans le ')

Bonjour,

Pourtant la réponse de rvtoulon est correcte.

Il faudrait que tu déposes un extrait de ton fichier avec l'anomalie.

eric

je pense comprendre:

Tu fais appel à ta macro "Masque_lig" à partir de la feuille "DONNEES" qui est la feuille active. Si je ne me trompe pas la feuille "NOTE DE CALCULS" est protégé par un mot de passe, hors :

 ActiveSheet.Unprotect ("motdepasse")

enlève la protection de la feuille active donc la feuille "DONNEES".

d'ou l'erreur.....

donc si tu veux masquer les lignes d'une autre feuille que la feuillle active voici ton code modifié:

Sub Masque_lig()
Application.ScreenUpdating = False
    Dim cellule As Range

    With Sheets("NOTE DE CALCULS")

        .Unprotect ("motdepasse")

             For Each cellule In .Range("M47:M245")
                If cellule.Value = 0 Then
                    cellule.EntireRow.Hidden = True
                Else
                    cellule.EntireRow.Hidden = False
                End If
            Next cellule

        .Protect Password:="motdepasse"

    End With
Application.ScreenUpdating = True
End Sub

ça fonctionne

Merci effectivement ça a réglé mon problème!

Par contre autre chose : si je protège toutes les cellules de ma page "note de calculs" (car certaines cellules variant en fonction d'une macro étaient déprotégés) le problème se reparte autre part. C'est le même genre de problème?

désolé je comprend pas ce que tu veux dire!

Moi non plus après relecture...

Je vais essayer d'être plus clair :

Dans mon exemple précédent les modifications que tu m'as fais faire ont réglé le problème.

Mais dans ma feuille "note de calculs" j'avais des cellules "non verrouillé" (cellules que vise la macro). Et j'ai tenté de voir si cela fonctionnerait toujours si je verrouillais toutes les cellules de la feuille "note de calculs". Ce qui n'est pas le cas.

Rechercher des sujets similaires à "erreur 1004 impossible definir propriete hidden"