Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Filtre avancé puis macro

7 réponses
Avatar
Luc
Bonjour,
J'avais sous excel 2003, une macro qui exécute un filtre élaboré et qui
fonctionnait.
Sous excel 2010, le filtre élaboré fonctionne manuellement mais si je
crée une macro quand je clique le bouton de la macro, mes cellules sont
vides.
Dans les critères, il y a des critères de dates.
Merci de vos lumières.
Luc

7 réponses

Avatar
isabelle
bonjour Luc,

est ce avec une zone de critère ?

Sub AdvanceFilter()
Range("A1:B8").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Range("I1:I2"), _
Unique:úlse
End Sub

isabelle

Le 2013-09-26 15:18, Luc a écrit :
Bonjour,
J'avais sous excel 2003, une macro qui exécute un filtre élaboré et qui
fonctionnait.
Sous excel 2010, le filtre élaboré fonctionne manuellement mais si je
crée une macro quand je clique le bouton de la macro, mes cellules sont
vides.
Dans les critères, il y a des critères de dates.
Merci de vos lumières.
Luc


Avatar
Luc
isabelle a exposé le 26/09/2013 :
bonjour Luc,

est ce avec une zone de critère ?

Sub AdvanceFilter()
Range("A1:B8").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Range("I1:I2"), _
Unique:úlse
End Sub

isabelle

Le 2013-09-26 15:18, Luc a écrit :
Bonjour,
J'avais sous excel 2003, une macro qui exécute un filtre élaboré et qui
fonctionnait.
Sous excel 2010, le filtre élaboré fonctionne manuellement mais si je
crée une macro quand je clique le bouton de la macro, mes cellules sont
vides.
Dans les critères, il y a des critères de dates.
Merci de vos lumières.
Luc





Bonjour Isabelle
Il y a bien des zones de critères, d'abord sur les dates puis sur les
noms.
En mettant les dates en format nombre ca marche, alors qu'avec Excel
2003, il n'y avait pas besoin !
Luc
Avatar
MichD
Bonjour,

Je n'éprouve aucun problème avec la solution d'Isabelle.

Exemple :

Nom de l'onglet de la feuille "Feuil1"
En A1, l'étiquette de colonne : Dates
De A2 à Ax : des dates

Zone de critère pour le filtre avancé : E1:E2
En E1 : Dates
En E2 : Une date appartenant à la colonne A2:Ax au FORMAT DATE RECONNU PAR
EXCEL.

Et le code :
'---------------------------------------------
Sub test()
Dim Sh As Worksheet

Set Sh = Worksheets("Feuil1") 'Nom feuille à adapter au besoin

With Sh
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, criteriaRange:=Sh.Range("E1:E2")
End With
End With
End Sub
'---------------------------------------------


MichD
---------------------------------------------------------------
Avatar
Luc
MichD a présenté l'énoncé suivant :
Bonjour,

Je n'éprouve aucun problème avec la solution d'Isabelle.

Exemple :

Nom de l'onglet de la feuille "Feuil1"
En A1, l'étiquette de colonne : Dates
De A2 à Ax : des dates

Zone de critère pour le filtre avancé : E1:E2
En E1 : Dates
En E2 : Une date appartenant à la colonne A2:Ax au FORMAT DATE RECONNU PAR
EXCEL.

Et le code :
'---------------------------------------------
Sub test()
Dim Sh As Worksheet

Set Sh = Worksheets("Feuil1") 'Nom feuille à adapter au besoin

With Sh
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, criteriaRange:=Sh.Range("E1:E2")
End With
End With
End Sub
'---------------------------------------------


MichD
---------------------------------------------------------------


Bonjour,
Voilà la macro :
Sub Guides()
'
' Guides Macro
' Macro enregistrée le 18/06/2013 par Anne
'

'
Range("BaseDonnées").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Range("A1:C2"), CopyToRange:=Range("B7:P7"), Unique:úlse
End Sub

et les critères (A1:C2):
Guide Date Date
DESVAUX Coralie >/9/13 <1/12/13

Quand j'exécute, il m'extraie rien (tableau vide) !!!

Luc
Avatar
MichD
Si tu veux utiliser des critères "Plus grand que et Plus petit que"
dans un filtre avancé, tu peux utiliser une formule comme ceci :

En supposant que la colonne A:A représente des dates avec une
étiquette de colonne... tu remplaces les dates par celles qui te
convient.

Zone de critère E1:E2
En E1, ou tu laisses totalement vide ou tu choisis une étiquette
qui n'apparaît pas dans ton tableau des données
En E2, la formule suivante : =ET(A2>"06/10/2013"*1;A2<"18/10/2013"*1)


MichD
---------------------------------------------------------------
Avatar
Luc
MichD avait écrit le 28/09/2013 :
Si tu veux utiliser des critères "Plus grand que et Plus petit que"
dans un filtre avancé, tu peux utiliser une formule comme ceci :

En supposant que la colonne A:A représente des dates avec une
étiquette de colonne... tu remplaces les dates par celles qui te
convient.

Zone de critère E1:E2
En E1, ou tu laisses totalement vide ou tu choisis une étiquette
qui n'apparaît pas dans ton tableau des données
En E2, la formule suivante : =ET(A2>"06/10/2013"*1;A2<"18/10/2013"*1)


MichD
---------------------------------------------------------------



Bonjour,
Merci de ta réponse que n'ai pas encore essayé,
voilà la solution que j'avais trouvé :
j'ai créé une colonne avec le premier jour de chaque mois de l'année
que j'ai besoin,
dans la colonne en face B6 je fais ¦ en format nombre et format
Texte.
donc si A6 = 1-janv.-13 en B6 il met 41275
et A18 = 31-déc.-13 en B18 il met 41639

puis dans la zone critère A1:C2
A1= Guide
A2= DESVAUX Coralie

B1(1er critère) = Date
B2 =">41275"

C1 (2ème critère) = Date
C2 ="<41639"

et là, la macro m'extraie bien les données demandées.

Luc
Avatar
MichD
Tu pourrais aussi employer cette syntaxe :

B1(1er critère) = Date
B2 =">"&"06/10/2013"*1"

C1 (2ème critère) = Date
C2 =">"&"17/10/2013"*1

Après avoir validé B2 va afficher : >41553 et C2 : >41564
Sauf que tu pourras visualiser dans la barre de formule
les dates que tu as saisies.

L'avantage d'une formule, elle permet l'utilisation d'une seule cellule!


MichD
---------------------------------------------------------------