XL 2019 Filtrer une colonne selon une autre colonne de valeur

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 mais je pense faut utiliser une macro.

Je vous remercie pour toutes aides .
 

Pièces jointes

  • filtre.xlsx
    13 KB · Affichages: 10
Dernière édition:
Solution
Re,
Effectivement c'était pas facile à comprendre comme demande. :)
En PJ un essai avec deux boutons et :
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...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Tokou,
D'après ce que j'ai compris.
Votre problème vient du fait que la colonne E ne contient pas des nombres mais des chaines de caractères. ( c'est pour cela qu'il sont centrés à gauche )
En PJ j'ai passé cette colonne en format standard, et dans chaque cellule on sélectionne la valeur puis retour. Cela se transforme en nombre, centré à droite.
Il suffit alors de faire Filtrer/Filtre numérique/Est égal à ... puis mettre inférueir à 8 par ex.
 

Pièces jointes

  • filtre.xlsx
    40.9 KB · Affichages: 4

tokou

XLDnaute Nouveau
Bonjour Sylvanu , malheureusement j'ai changé les vraies valeurs de la colonne E , inférieure à 8 ne fonctionnera parceque c'est des nombres aléatoire et non croissant.
J'ai besoin de filtrer 280 valeurs non croissant et des nombres précises et aléatoire.
Mais je vous remercie pour votre réponse.
J'ai même chercher dans les filtres avancés mais je ne trouve pas .
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Effectivement c'était pas facile à comprendre comme demande. :)
En PJ un essai avec deux boutons et :
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
 

Pièces jointes

  • filtre (4).xlsm
    19.1 KB · Affichages: 8

tokou

XLDnaute Nouveau
Sinon savez vous comment faire une mise en conditionnelle égale à = plusieurs valeurs de la colonne en remplissant les valeurs par un couleur comme ça je pourrais filtrer la colonne de données en fonction de la couleur et ainsi je pourrai obtenir mon filtrage .
Car je sais pas programmer en vba pour trier un colonne par rapport à l'autre
 

tokou

XLDnaute Nouveau
Re,
Effectivement c'était pas facile à comprendre comme demande. :)
En PJ un essai avec deux boutons et :
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
Merci beaucoup à toi et ton temps , je vais tester et voir !
 

tokou

XLDnaute Nouveau
Encore Merci à toi Sylvanu , t'es trop fort la macro marche bien , juste un bémol après avoir filtrer , une grande partie des nombres de la colonne filtre disparaisse mais cela ne fait rien du moment que ça filtre la base de donnée de la colonne A et qu'il y'a pas de manque .

Je te remercie bonne fin d'après midi :) .
 

Pièces jointes

  • Sans titre.png
    Sans titre.png
    32 KB · Affichages: 40

Discussions similaires

Réponses
9
Affichages
645

Statistiques des forums

Discussions
312 176
Messages
2 085 962
Membres
103 067
dernier inscrit
el_privach