Je tente de faire un filtre sur une valeur saisie dans une plage fusionnée.
Mon code fonctionne si la valeur n'est pas nulle mais lorsque je supprime cette valeur la suppression du filtre ne réagit pas.
Cela vient du fait que la zone de référence est sur une plage fusionnée car quand j'enlève la fusion le code réagit.
Auriez-vous une solution de contournement ?
Merci par avance pour votre aide
Bonne journée à tous
Private Sub Worksheet_Change(ByVal Target As Range)
'filtre produit fini accessoire
If Target.Address(0, 0) = "K4" Then If Target.Value = "" Then
Range("$B$11:$P$11").AutoFilter Field:=15
End If
If Target.Value <> "" Then
Range("$B$11:$P$11").AutoFilter Field:=15, Criteria1:="=*" & Target.Value & "*"
End If
End If
End Sub
Avec ce code à la place du tien, cela semble fonctionner, non ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("K4") <> vbNullString Then
Me.AutoFilterMode = False
With Range("$B$11:$P$11")
.AutoFilter
.AutoFilter Field:=15, Criteria1:=Range("K4").Text
End With
Else
Range("$B$11:$P$11").AutoFilter
End If
End Sub
PS: Suggestion au passage: évite les titres tout en majuscules (cela agresse l'oeil et cela équivaut à "gueuler"* sur un forum. *: c'est pas moi qui le dit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [K4]) Is Nothing Then Exit Sub
If [K4] = "" Then If FilterMode Then ShowAllData: Exit Sub
[K3] = [P11]
[B11].CurrentRegion.AdvancedFilter xlFilterInPlace, [K3:K4]
End Sub
Merci les amis les 2 codes proposés fonctionnent.
Vous m'enlevez une belle épine du pied.
Je vais voir lequel choisir avec la configuration de mon fichier
Très bon week end