Fonction filtre auto

Bonjour,

j'ai un fichier avec un filtre automatique

j'aimerais que lorsque je fais un tri par la colonne A un recapitulatif se fait en feuil2

Ci-joint une explication par un fichier exemple.

Merci d'avance

16filtre-auto.zip (22.46 Ko)

est-ce possible?

Bonsoir,

Ci-joint fichier à tester et à adapter à tes besoins.

Cordialement

Public Sub FiltreAuto()
'Jean-Eric
Dim sH_1 As Worksheet
Dim sH_2 As Worksheet
Dim Plage As Range

    Application.ScreenUpdating = False

    Set sH_1 = Worksheets(1)
    Set sH_2 = Worksheets(2)

    With sH_1
        Set Plage = .Range("A4").CurrentRegion
        Plage.AdvancedFilter Action:= _
                xlFilterCopy, CriteriaRange:=sH_1.Range("A1:A2"), _
                CopyToRange:=sH_2.Range("A1:E1"), Unique:=False
    End With

End Sub

comment conserve le filtre auto sur la feuil1

Si je remets le filtre auto sur la feuil1 et que je fais la macro le filtre auto disparait

Bonjour,

Ci-joint code modifié

Option Explicit
Public Sub FiltreAuto()
'Jean-Eric
Dim sH_1 As Worksheet
Dim sH_2 As Worksheet
Dim Plage As Range

    Application.ScreenUpdating = False

    Set sH_1 = Worksheets(1)
    Set sH_2 = Worksheets(2)

    With sH_1
        Set Plage = .Range("A4").CurrentRegion
        Plage.AdvancedFilter Action:= _
                xlFilterCopy, CriteriaRange:=sH_1.Range("A1:A2"), _
                CopyToRange:=sH_2.Range("A1:E1"), Unique:=False
        Plage.AutoFilter
    End With

End Sub
Jean-Eric a écrit :

Bonjour,

Ci-joint code modifié

Option Explicit
Public Sub FiltreAuto()
'Jean-Eric
Dim sH_1 As Worksheet
Dim sH_2 As Worksheet
Dim Plage As Range

    Application.ScreenUpdating = False

    Set sH_1 = Worksheets(1)
    Set sH_2 = Worksheets(2)

    With sH_1
        Set Plage = .Range("A4").CurrentRegion
        Plage.AdvancedFilter Action:= _
                xlFilterCopy, CriteriaRange:=sH_1.Range("A1:A2"), _
                CopyToRange:=sH_2.Range("A1:E1"), Unique:=False
        Plage.AutoFilter
    End With

End Sub

Ce code marche, mais comment faire si il faut rajouter une colonne, j'ai fait un essai en intercalant une colonne entre D et E cela me fait une erreur, si je change le code en mettant "CopyToRange:=sH_2.Range("A1:F1"), Unique:=False"

cela ne marche pas comment faire?

Bonjour,

En réponse à Tiralarc, j'ai modifié le code en intégrant une variable "Dercolonne" dynamique.

Cela ne fonctionne pas. Un idée peut-être du problème, ou faudra-t-il coder en dur après l'insertion de nouvelles colonnes?

Merci par avance de aide.

Cdlt

Option Explicit
Public Sub FiltreAuto()
'Jean-Eric
Dim sH_1 As Worksheet
Dim sH_2 As Worksheet
Dim Plage As Range
Dim Dercolonne As Integer

    Application.ScreenUpdating = False

    Set sH_1 = Worksheets(1)
    Set sH_2 = Worksheets(2)

    With sH_1
        Set Plage = .Range("A4").CurrentRegion
        Dercolonne = Cells(4, Cells.Columns.Count).End(xlToLeft).Column
        'MsgBox Dercolonne
        Plage.AdvancedFilter Action:= _
                xlFilterCopy, CriteriaRange:=sH_1.Range("A1:A2"), _
                CopyToRange:=sH_2.Range(Cells(1, 1), Cells(1, Dercolonne)), Unique:=False
        Plage.AutoFilter
    End With

End Sub

Dans mon tableau complet, il y a des informations jusqu'a la colonne S je ne souhaite pas forcement inserée des lignes mais que les informations soit rapportées jusqu'a la colonne S dans la feuille 2

Re,

Je te renvoie le fichier.

Un postulat : que les champs de colonnes de la ligne n°'4 soient documentés comme dans l'exemple fourni.

Cdlt

Option Explicit
Public Sub FiltreAuto()
'Jean-Eric
Dim sH_1 As Worksheet
Dim sH_2 As Worksheet
Dim Plage As Range

    Application.ScreenUpdating = False

    Set sH_1 = Worksheets(1)
    Set sH_2 = Worksheets(2)

    With sH_1
        Set Plage = .Range("A4").CurrentRegion
        Plage.AdvancedFilter Action:= _
                xlFilterCopy, CriteriaRange:=sH_1.Range("A1:A2"), _
                CopyToRange:=sH_2.Range("A1:S1"), Unique:=False
        Plage.AutoFilter
    End With

    sH_2.Range("A1").Select

    Application.ScreenUpdating = True

End Sub

Re,

Dans précédent post supprimer l'avant dernière ligne du code:

sH_2.Range("A1").Select

Sinon bug

Cdtl.

en a4 il y a un ligne de titre les donnes commence en A5

Re,

Envoies ton fichier avec les entêtes de lignes et de colonnes.

Que je vois la bête

Voici la bete.

J'ai etendu àla colonne Z au cas ou, mais se sera le maximum.

J'ai mis les lignes ou il y aura du texte et d'autres du chriffres uniquement

RE,

Je suis patient

Regardes le code....

A te relire

Jean-Eric a écrit :

RE,

Je suis patient

Regardes le code....

A te relire

je te remercie de ta patience

Rechercher des sujets similaires à "fonction filtre auto"