chris6999
XLDnaute Impliqué
Bonjour le FORUM
Quelqu'un pourrait-il m'expliquer pourquoi ma macro affiche une erreur de type 1004 (impossible d'exécuter car feuille protégée).
Le principe est le suivant:
La macro filtre sur la valeur contenue dans B4 et retire le filtre lorsque B4 vide.
Le filtre fonctionne nickel lorsque la feuille n'est pas protégée mais impossible de l'exécuter dans le cas contraire (bloque sur la ligne en rouge)
Je préfèrerais ne pas alourdir à mon code avec des ordres de type protect et unprotect.
Je précise que dans les paramètres de protection j'ai autorisé l'utilisation des filtres automatiques
SI quelqu'un a une idée sur la question!
Merci d'avance et bonne journée à tous
Private Sub Worksheet_Change(ByVal Target As Range)
'fitre les lignes à partir du nom
' Si modification de la cellule B4
If Target.Address(0, 0) = "B4" Then
' Si la cellule contient une valeur
If Target.Value <> "" Then
' Filter sur cette valeur
Range("A6:F6").AutoFilter Field:=1, Criteria1:="=*" & Target.Value & "*"
Else
' Supprimer le filtre
Range("A6:F6").AutoFilter Field:=1
If Range("B4") = "" Then
Exit Sub
End If
Quelqu'un pourrait-il m'expliquer pourquoi ma macro affiche une erreur de type 1004 (impossible d'exécuter car feuille protégée).
Le principe est le suivant:
La macro filtre sur la valeur contenue dans B4 et retire le filtre lorsque B4 vide.
Le filtre fonctionne nickel lorsque la feuille n'est pas protégée mais impossible de l'exécuter dans le cas contraire (bloque sur la ligne en rouge)
Je préfèrerais ne pas alourdir à mon code avec des ordres de type protect et unprotect.
Je précise que dans les paramètres de protection j'ai autorisé l'utilisation des filtres automatiques
SI quelqu'un a une idée sur la question!
Merci d'avance et bonne journée à tous
Private Sub Worksheet_Change(ByVal Target As Range)
'fitre les lignes à partir du nom
' Si modification de la cellule B4
If Target.Address(0, 0) = "B4" Then
' Si la cellule contient une valeur
If Target.Value <> "" Then
' Filter sur cette valeur
Range("A6:F6").AutoFilter Field:=1, Criteria1:="=*" & Target.Value & "*"
Else
' Supprimer le filtre
Range("A6:F6").AutoFilter Field:=1
If Range("B4") = "" Then
Exit Sub
End If