XL 2019 Filtrer un colonne de donnée suivant une autre colonne

tokou

XLDnaute Nouveau
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 :

1651501972547.png


Après filtrage :


1651501914043.png


Niquel !

Mais dès qu'on a des données plus longue dans la colonne A, la VBA déconne :

Avant filtrage :

1651502082265.png


Après filtrage :

1651502179238.png

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 .
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Tokou,
Dans votre première PJ le tableau s'arrêtait à la ligne 22 d'où le filtrage :
VB:
ActiveSheet.Range("$F$1:$F$22").AutoFilter Field:=1, Criteria1:="<>"
Dans cette PJ, le filtrage est effectué sur tout le tableau :
Code:
ActiveSheet.Range("$F$1:$F$" & DLA).AutoFilter Field:=1, Criteria1:="<>"
A tester.
 

Pièces jointes

  • filtre (4).xlsm
    20.3 KB · Affichages: 5

tokou

XLDnaute Nouveau
Hello sylvanu, je te remercie beaucoup pour ta réponse. Malheureusement, ça marche toujours pas avec des grandes données sur la colonne A. J'essaye de voir sur le code.

1651508147663.png
 

Pièces jointes

  • filtre (4).xlsm
    21.8 KB · Affichages: 4
Dernière édition:

Discussions similaires

Réponses
8
Affichages
402
Réponses
9
Affichages
894

Statistiques des forums

Discussions
315 092
Messages
2 116 118
Membres
112 665
dernier inscrit
JPHD