Incorporer une variable dans un filtre

Bonsoir,

J'essaye d'incorporer, une variable dans un filtre sans succès.

Étant donné que ma plage de filtre peut être aléatoire en fonction des données du jour, je voulais remplacer le range dans le filtre par ma variable mais ça bug.

Sub Macro23()
'
' Macro23 Macro
'
    Dim Niv2Nom As Range
    Set Niv2Nom = ActiveCell

    Rows("1:1").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Niv2Nom.Select
    ActiveCell.Offset(0, -1).Select
    ActiveCell.EntireColumn.Select

    Range(Selection, Selection.End(xlToLeft)).Select
    Selection.AutoFilter

    Dim PlageFiltre1 As Variant
    Set PlageFiltre1 = ActiveCell.CurrentRegion
'
    ActiveWorkbook.Worksheets("CP_106738").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("CP_106738").AutoFilter.Sort.SortFields.Add Key:= _
        Range("AF1:AF1285"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("CP_106738").AutoFilter.Sort
        .Apply
    End With
End Sub
Avez vous une solution ? 

Bonjour,

Sauf erreur de ma part, je ne vois pas de filtre dans votre code, seulement un tri.

Voici un essai pour variabiliser un filtre :

Sub GoFiltre()
Filtrer range("A1:C100"), array("1", "2"), 1
end sub

Sub Filtrer(Range as Range, vCriteria, optional Field& = 1)
with Range
    .AutoFilter Field:=Field, Criteria1:=vCriteria, Operator:=xlFilterValues
end with
end sub

Cdlt,

Oups, il s'agit bien d'un tri.

Je ne souhaite pas voir de coordonnées de plage dans mon tri. C'est toute la question.

Les coordonnées qu'on voit dans mon code c'est à cause que j'utilise l'enregistreur macro.

Mais j'aimerais m'en passer. Je souhaiterais trier une plage à partir d'une colonne qui peut varier d'un jour à l'autre. C'est pour ça que je souhaite intégrer ma plage "PlageFiltre1".

Merci encore.

C'est ce que je me disais...

Voici un nouvel essai pour un tri sur la 30è colonne de la région courante de A1 (sur la feuille active) :

Sub GoTri()
Tri range("A1").currentregion, 30
end sub

Sub Tri(PlageFiltre as range, Field as long)
with PlageFiltre
    .Sort Key1:=.columns(Field), Order1:=xlAscending, header:=xlyes, DataOption1:=xlSortNormal
End With
End Sub

Il s'agit d'un exemple mais on peut personnaliser et modifier assez facilement la plage à filtrer et la colonne du tri en fonction de critères amenés à évoluer.

Cdlt,

Rechercher des sujets similaires à "incorporer variable filtre"