Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' Vérifiez si la cellule modifiée est B1
If Not Intersect(Target, ws.Range("B1")) Is Nothing Then
Application.EnableEvents = False
Dim filterValue As String
filterValue = ws.Range("B1").Value
If ws.Range("A1").Value <> "" Then
' Supprimer le filtre existant
If ws.AutoFilterMode Then
ws.AutoFilterMode = False
End If
' Définir la plage de données à filtrer
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim dataRange As Range
Set dataRange = ws.Range("A1:A" & lastRow)
' Appliquer le filtre
If IsNumeric(filterValue) Then
dataRange.AutoFilter Field:=1, Criteria1:=filterValue
Else
dataRange.AutoFilter Field:=1, Criteria1:="*" & filterValue & "*"
End If
End If
Application.EnableEvents = True ' Réactiver les événements
End If
End Sub
Pour info, j'ai trouver une solution avec une VBA ci dessusducoup quand je rentre une valeurs dans la case B1 du genre "41" cela filtre la colonne A sur 41, seul problème qui reste je veux allimenter la case B1 via un autre classeur donc j'ai besoin que la "macro" s'active à l'ouverture du fichier. Pour le moment seul la saisie manuel met à jour