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 SubAvez 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 subCdlt,
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 SubIl 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,