Adapter code filtre elaboré

winkel

XLDnaute Nouveau
Salut ts le monde,

J'ai trouvé un bout de code qui fait presque ce dont j'ai besoin.
Ce que j'ai trouvé, c'est un filtre sur une feuille déterminée. => BD

J'essaye de dire que le nom de la feuille à filtrer se trouve dans la cellule "D4" pour pouvoir le faire sur plusieur feuilles. => janv, fév, mars ....

merci d'avance du coup du pouce
-------------------------------------------
Extraction avec filtre élaboré
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$4" Then
Set f = Sheets("bd")
f.[A1:D1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=f.[F1], Unique:=True
f.[F1:F100].Sort Key1:=f.[F2], Order1:=xlAscending, Header:=xlGuess
End If
If Target.Address = "$B$4" Then
Set f = Sheets("bd")
f.[A1:D1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=f.[G1], Unique:=True
f.[G1:G100].Sort Key1:=f.[G2], Order1:=xlAscending, Header:=xlGuess
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$4" Or Target.Address = "$B$4" Then
Set f = Sheets("bd")
f.[A1:D1000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[A3:B4], CopyToRange:=[A7:D7]
End If
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Adapter code filtre elaboré

Bonjour winkel,

J'essaye de dire que le nom de la feuille à filtrer se trouve dans la cellule "D4" pour pouvoir le faire sur plusieur feuilles. => janv, fév, mars ....

C'est ici que ça se passe :

Code:
Set f = Sheets("bd")
Remplacez "bd" (avec les guillemets) par la référence de la cellule D4 :

Code:
Set f = Sheets([D4].Text)
si [D4] est bien dans la feuille contenant les macros.

Sinon précisez la feuille :

Code:
Set f = Sheets(Sheets("Feuil1").[D4].Text)
Edit : ajouté .Text au cas où la cellule contient une date (nombre) formatée.

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 906
Membres
103 676
dernier inscrit
Haiti