Filtre élaboré
Résolu
ti_mouton
Messages postés
153
Statut
Membre
-
ti_mouton Messages postés 153 Statut Membre -
ti_mouton Messages postés 153 Statut Membre -
Bonjour,
J'ai besoin de renseigner un code VBA qui me permette de filtré les données contenu dans un TCD.
Le TCD se trouve dans la feuille nommée "Base", le critère du filtre se trouve dans la plage B1:C3 de la feuille "BLOCS", je veux que le filtre soit copié en cellule D6 de cette même feuille "BLOCS".
Voici ce que j'ai fait jusqu'à présent (et qui ne fonctionne pas...)
Mon pb est que le TCD contient déjà plusieurs dizaines de milliers de lignes, et il est amené à évoluer, je ne peux donc pas renseigner une plage de cellule précise du style Range("A1:Y100").AdvancedFilter. Auriez vous des idées pour m'aider ?
Merci d'avance
J'ai besoin de renseigner un code VBA qui me permette de filtré les données contenu dans un TCD.
Le TCD se trouve dans la feuille nommée "Base", le critère du filtre se trouve dans la plage B1:C3 de la feuille "BLOCS", je veux que le filtre soit copié en cellule D6 de cette même feuille "BLOCS".
Voici ce que j'ai fait jusqu'à présent (et qui ne fonctionne pas...)
Sub FiltreAvance()
Sheets("Base").Range("Tableau croisé dynamique1").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("BLOCS").[B1:C3], CopyToRange:=Sheets("BLOCS").[D6], Unique:=True
End Sub
Mon pb est que le TCD contient déjà plusieurs dizaines de milliers de lignes, et il est amené à évoluer, je ne peux donc pas renseigner une plage de cellule précise du style Range("A1:Y100").AdvancedFilter. Auriez vous des idées pour m'aider ?
Merci d'avance
A voir également:
- Filtre élaboré
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Filtre whatsapp - Accueil - Messagerie instantanée
- Filtre teams - Accueil - Visio
- Filtre manga - Accueil - TikTok
- Logiciel filtre photo - Guide
1 réponse
Bonjour,
Pourquoi ne pas utiliser une variable?
Je verrais ça comme ça...
Pourquoi ne pas utiliser une variable?
Sub FiltreAvance() Dim DL As Integer 'Définit la variable DL pour dernière ligne DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'Le 1 est à adapter, il faut mettre le numéro de ta colonne qui est remplie jusqu'à la fin du tableau Sheets("Base").Range(Cells(1, 1), Cells(i, "Nombre total de colonnes")).AdvanceFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("BLOCS").[B1:C3], CopyToRange:=Sheets("BLOCS").[D6], Unique:=True End Sub
Je verrais ça comme ça...
Merci pour ta réponse ! J'ai très peu de connaissances en VBA, c'est pourquoi je n'avais pas pensé cette histoire de variable. Je vais essayer d'utiliser ton code, par contre, mon TCD ne commence qu'à partir de la ligne 15 de la feuille "Base", comment cela modifie t il le code ?
Merci
Si ton tableau commence à la ligne 15, tu dois changer la première "Cells" de la Range :
Vois si il convient et reviens moi ;)