Bonjour , je vous écris ce post car je peine à trouver une solution à mon problème .
L'option filtrer de Excel ne permet pas de filtrer selon une colonne de valeurs et la fonction rechercheV ne résolu n'ont plus à mon souci .
Ce que je recherche à faire c'est tout simplement de filtrer une colonne selon une autre colonne de référence de filtrage ( Sans perdre aucune données ) .
Dans mon exemple filtrer la colonne A selon la colonne filtrage E.
J'avais déjà fait un post similaire il y'a 4 mois ( https://www.excel-downloads.com/thr...e-selon-une-autre-colonne-de-valeur.20063978/ )
mais il y'a quelque chose qui marche pas , je vous explique :
Lorsque qu'il y'a pas beaucoup de données dans la colonne A à trier, la macro filtrage fonctionne correctement mais dès qu'il dépasse une certaine valeur, le filtrage déconne .
Avant filtrage :
Après filtrage :
Niquel !
Mais dès qu'on a des données plus longue dans la colonne A, la VBA déconne :
Avant filtrage :
Après filtrage :
Vba de @sylvanu
:
Je vous remercie pour toutes aides .
L'option filtrer de Excel ne permet pas de filtrer selon une colonne de valeurs et la fonction rechercheV ne résolu n'ont plus à mon souci .
Ce que je recherche à faire c'est tout simplement de filtrer une colonne selon une autre colonne de référence de filtrage ( Sans perdre aucune données ) .
Dans mon exemple filtrer la colonne A selon la colonne filtrage E.
J'avais déjà fait un post similaire il y'a 4 mois ( https://www.excel-downloads.com/thr...e-selon-une-autre-colonne-de-valeur.20063978/ )
mais il y'a quelque chose qui marche pas , je vous explique :
Lorsque qu'il y'a pas beaucoup de données dans la colonne A à trier, la macro filtrage fonctionne correctement mais dès qu'il dépasse une certaine valeur, le filtrage déconne .
Avant filtrage :
Après filtrage :
Niquel !
Mais dès qu'on a des données plus longue dans la colonne A, la VBA déconne :
Avant filtrage :
Après filtrage :
Vba de @sylvanu
:
VB:
Sub Filtre()
Dim DLA%, DLE%, La%, Le%, F
Application.ScreenUpdating = False
DLA = Range("A65500").End(xlUp).Row
DLE = Range("E65500").End(xlUp).Row
Range("F2:F65000").ClearContents
For La = 2 To DLA
F = Cells(La, "A")
For Le = 2 To DLE
If Application.CountIf([E:E], F) > 0 Then
Cells(La, "F") = "X"
Exit For
End If
Next Le
Next La
ActiveSheet.Range("$F$1:$F$22").AutoFilter Field:=1, Criteria1:="<>"
End Sub
Sub FiltreOFF()
Application.ScreenUpdating = False
Range("F2:F65000").ClearContents
ActiveSheet.Range("$F$1:$F$65000").AutoFilter Field:=1
End Sub
Je vous remercie pour toutes aides .