Filtre sur plusieurs onglets

bonjour à tous,

j'ai des données par onglets/mois que je tri avec un filtre. J'ai donc 12 filtres.

j'ai dois faire une macro qui filtre ou défiltre les 12 onglets, là n'est pas mon probléme.

devant rajouter des lignes de temps en temps, je devrais changer la taille des filtres.

donc j'ai réussit à inclure une variable dans la macro du filtre.

voici le code

Sub enlever_filtre()

' enlever filtre

Sheets("juin").Select

Dim derli1 As Integer

derli1 = Range("A" & Rows.Count).End(xlUp).Row

ActiveSheet.Range("$B$9:AL$" & derli1 + 2).AutoFilter Field:=" & derli + 2 & "

' ActiveSheet.Range("$B$9:$AL$37").AutoFilter Field:=37

Sheets("juil").Select

Dim derli2 As Integer

derli2 = Range("A" & Rows.Count).End(xlUp).Row

ActiveSheet.Range("$A$9:AN$" & derli2 + 1).AutoFilter Field:=39

'ActiveSheet.Range("$A$9:$AN$36").AutoFilter Field:=39

End Sub

je n'arrive pas à coder la variable derli pour chiffrer le 37 aprés AutoFilter Fied.

quelqu'un peut m'aider svp

merci

Fronck

Bonsoir,

Quel est le rapport entre la dernière ligne et la propriété

Field 

qui est une colonne du filtrage ?

Bonsoir,

Cela devrait être fort simple avec un bon code correctement écrit.

Bonne question Raja.

Autofilter field est la zone couverte par le tri et 39 ou 37 le n° de la colonne.

en modifiant le code j'ai toujours un probléme avec la variable correspondante:

ActiveSheet.Range("$B$9:AL$" & derli1 + 2).AutoFilter Field:=" & dercol & "

Il ne t'est pas venu à l'idée que la commande :

ActiveSheet.Range("B9:AL9").AutoFilter 37, xxx(critère)

conforme à la syntaxe filtrerait ta plage selon le critère indiqué.

Cordialement.

MFerrand,

le critére c'est pour mettre le filtre, pas pour l'enlever, mais le probléme est la variable aprés Autofilter Field.

si tu mets pas la même, çà emp^éche de filter ou défiltrer..

Bonne soirée.

Sub filtreSAV()

'

' filtre sur SAV

Sheets("juin").Select

Dim derli1 As Integer

derli1 = Range("A" & Rows.Count).End(xlUp).Row

ActiveSheet.Range("$B$9:AL$" & derli1 + 2).AutoFilter Field:=37, Criteria1:="SAV"

' ActiveSheet.Range("$B$9:$AL$37").AutoFilter Field:=37, Criteria1:="SAV"

Sheets("juil").Select

Dim derli2 As Integer

derli2 = Range("A" & Rows.Count).End(xlUp).Row

ActiveSheet.Range("$A$9:AN$" & derli2 + 1).AutoFilter Field:=39, Criteria1:="SAV"

' ActiveSheet.Range("$A$9:$AN$36").AutoFilter Field:=39, Criteria1:="SAV"

End Sub

Sub enlever_filtre()

' enlever filtre

Sheets("juin").Select

Dim derli1 As Integer

derli1 = Range("A" & Rows.Count).End(xlUp).Row

Dim dercol As Integer

For i = 1 To 50

If Cells(2, i) = "" Then

dercol = i - 1

GoTo ligne1

End If

Next i

ligne1:

ActiveSheet.Range("$B$9:AL$" & derli1 + 2).AutoFilter Field:=" & dercol & "

' ActiveSheet.Range("$B$9:$AL$37").AutoFilter Field:=37

Sheets("juil").Select

Dim derli2 As Integer

derli2 = Range("A" & Rows.Count).End(xlUp).Row

ActiveSheet.Range("$A$9:AN$" & derli2 + 1).AutoFilter Field:=39

'ActiveSheet.Range("$A$9:$AN$36").AutoFilter Field:=39

End Sub

Bonjour,

Tout cela est un peu confus.

Et si tu mettais tes données sous forme de tableau (Excel 2007+) ?

Le nombre de lignes ne serait plus à calculer.

Ensuite, tu consultes l'aide pour la méthode Range.AutoFilter et le paramètre Field.

Et pour terminer, tu joins un fichier représentatif, pour une aide adaptée.

Cdlt.

Salut Jean-Eric,

J'avais essayé de faire comprendre que se préoccuper des lignes (ajoutées ou non) était la plupart du temps inutile et c'est bien plutôt le cas inverse (limiter la zone filtrée qui conduit à le faire...

Si le champ filtré est variable et qu'il s'agit du dernier, .Columns.Count le renverra.

Quant à le mettre ou l'enlever, ce ne sont pas les moyens qui manquent.

Cordialement.

Effectivement Maréchal ,

cela prend les nouvelles lignes, sans avoir à modifier la macro du tout.

merci désolé de vous avoir déranger.

a+

Fronck

Rechercher des sujets similaires à "filtre onglets"