OVH Cloud OVH Cloud

"contient" dans un filtre personnalisé

9 réponses
Avatar
Philo
Lors d'un filtre automatique "personnalis=E9" le=20
filtre "=E9gal" est par d=E9faut.
Comment mettre =E0 la place "contient" par d=E9faut ?
Merci
Philo

9 réponses

Avatar
Alain CROS
Bonjour.

Si c'est depuis l'interface XL, je ne sais pas faire.
Si c'est par code :
Ta cellule active étant dans la zone ou tu veux appliquer ton filtre.
Pour faire apparaître la boite de dialogue avec des critères "contient", l'opérateur "ou" sur la colonne 3.

Application.Dialogs(xlDialogFilter).Show 3, "=* *", 2, "=* *"

Alain CROS.

"Philo" a écrit dans le message de news: e18801c3f0d7$3d4edfc0$
Lors d'un filtre automatique "personnalisé" le
filtre "égal" est par défaut.
Comment mettre à la place "contient" par défaut ?
Merci
Philo
Avatar
michdenis
Bonjour Philo,


Remplir La Fenêtre Filtre Automatique Lors De Son Affichage





'Affiche la boîte de dialogue "Filtre automatique

Application.Dialogs(xlDialogFilter).Show



'La commande peut accepter 4 paramètres :



Application.Dialogs(xlDialogFilter).Show 3, "<>12", 2, "<>12"



'Premier paramètre :

'Le 3 = Le Numéro de la colonne 3 de la plage de données

'sur laquelle s'effectue le filtre automatique



'Deuxième paramètre : Premier critère du filtre

'">12" = Plus grand que 12



'Troisième paramètre : Si le filtre possède 2 critères :

'Le 1 = "ET" Pour le 2 = "OU"

Application.Dialogs(xlDialogFilter).Show 3, ">12", 2, "<20"



'Quatrième paramètre : Le deuxième critère du filtre

'"<12" = Plus Petit que 20



Comment saisir les différents types de critère de la boîte de dialogue

----------------------------------------------------

'Sur une plage numérique



'Critère : "Égal" à 12

'Application.Dialogs(xlDialogFilter).Show 3, ""



'Critère : "Différent de" 12

'Application.Dialogs(xlDialogFilter).Show 3, "<>12"



'Critère : "Plus grand que" 12

'Application.Dialogs(xlDialogFilter).Show 3, ">12"



'Critère : "Plus petit que" 12

'Application.Dialogs(xlDialogFilter).Show 3, "<12"

----------------------------------------------------




'Dans les cas suivants le champ(colonne) doit être du "texte"



'Critère : Contient : toto1

Application.Dialogs(xlDialogFilter).Show 3, "toto1*"



'Critère : Ne Contient pas : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>*toto1*"



'Critère : Commence par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "toto1*"



'Critère : Ne Commence pas par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>toto1*"



'Critère : Se termine par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "*toto1"



'Critère : Ne se termine pas par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>*toto1"

----------------------------------------------------





Salutations!





"Philo" a écrit dans le message de news:e18801c3f0d7$3d4edfc0$
Lors d'un filtre automatique "personnalisé" le
filtre "égal" est par défaut.
Comment mettre à la place "contient" par défaut ?
Merci
Philo
Avatar
Alain CROS
Bonjour.

En complément.
Si le 3eme paramètre est > 2, on obtient une bd qui permet d'obtenir les x (Paramètre 2) premiers en partant soit du haut,
soit du bas par éléments ou en pourcentage.
Exemple:
Application.Dialogs(xlDialogFilter).Show 5, 6, 3
Permet d'obtenir les 6 + grand éléments de la colonne 5.
Application.Dialogs(xlDialogFilter).Show 2, 3, 4
Permet d'obtenir les 3 + petit éléments de la colonne 2.
Application.Dialogs(xlDialogFilter).Show 1, 30, 5
Permet d'obtenir les 30% plus grand éléments de la colonne 1.
Application.Dialogs(xlDialogFilter).Show 3, 40, 6
Permet d'obtenir les 40% plus petits éléments de la colonne 3.

Le problème avec cette boite concerne les dates.
Si par exemple, j'ai les données suivante :
LesDates
14/02/04
02/02/04
13/02/04
24/02/04
25/02/04
06/02/04
17/02/04
08/02/04
09/02/04
20/02/04
22/02/04
12/02/04
23/02/04
14/02/04
15/02/04
Et que je veux proposer un filtre, modifiable par l'utilisateur, mais qui propose en standard toutes les dates supérieure a
aujourd'hui - 3 jours.
J'utilise cette ligne de code :
Application.Dialogs(xlDialogFilter).Show 3, ">=" & Format(Now - 3, "mm/dd/yy")
J'obtient la boite qui fonctionne correctement si on appuis sur OK, mais le critère n'est pas formaté en date et affiche 38030 ce
qui peut être déroutant.
Si quelqu'un a une solution ?
Merci.

Alain CROS.

"michdenis" a écrit dans le message de news:
Bonjour Philo,


Remplir La Fenêtre Filtre Automatique Lors De Son Affichage





'Affiche la boîte de dialogue "Filtre automatique

Application.Dialogs(xlDialogFilter).Show



'La commande peut accepter 4 paramètres :



Application.Dialogs(xlDialogFilter).Show 3, "<>12", 2, "<>12"



'Premier paramètre :

'Le 3 = Le Numéro de la colonne 3 de la plage de données

'sur laquelle s'effectue le filtre automatique



'Deuxième paramètre : Premier critère du filtre

'">12" = Plus grand que 12



'Troisième paramètre : Si le filtre possède 2 critères :

'Le 1 = "ET" Pour le 2 = "OU"

Application.Dialogs(xlDialogFilter).Show 3, ">12", 2, "<20"



'Quatrième paramètre : Le deuxième critère du filtre

'"<12" = Plus Petit que 20



Comment saisir les différents types de critère de la boîte de dialogue

----------------------------------------------------

'Sur une plage numérique



'Critère : "Égal" à 12

'Application.Dialogs(xlDialogFilter).Show 3, ""



'Critère : "Différent de" 12

'Application.Dialogs(xlDialogFilter).Show 3, "<>12"



'Critère : "Plus grand que" 12

'Application.Dialogs(xlDialogFilter).Show 3, ">12"



'Critère : "Plus petit que" 12

'Application.Dialogs(xlDialogFilter).Show 3, "<12"

----------------------------------------------------




'Dans les cas suivants le champ(colonne) doit être du "texte"



'Critère : Contient : toto1

Application.Dialogs(xlDialogFilter).Show 3, "toto1*"



'Critère : Ne Contient pas : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>*toto1*"



'Critère : Commence par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "toto1*"



'Critère : Ne Commence pas par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>toto1*"



'Critère : Se termine par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "*toto1"



'Critère : Ne se termine pas par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>*toto1"

----------------------------------------------------





Salutations!





"Philo" a écrit dans le message de news:e18801c3f0d7$3d4edfc0$
Lors d'un filtre automatique "personnalisé" le
filtre "égal" est par défaut.
Comment mettre à la place "contient" par défaut ?
Merci
Philo




Avatar
isabelle
bonjour Alain,

je met un espace devant et ça fonctionne.

y = " " & Application.Text(Date - 3, "yyyy-mm-dd")
Application.Dialogs(xlDialogFilter).Show 1, ">=" & y

isabelle


Bonjour.

En complément.
Si le 3eme paramètre est > 2, on obtient une bd qui permet d'obtenir les x (Paramètre 2) premiers en partant soit du haut,
soit du bas par éléments ou en pourcentage.
Exemple:
Application.Dialogs(xlDialogFilter).Show 5, 6, 3
Permet d'obtenir les 6 + grand éléments de la colonne 5.
Application.Dialogs(xlDialogFilter).Show 2, 3, 4
Permet d'obtenir les 3 + petit éléments de la colonne 2.
Application.Dialogs(xlDialogFilter).Show 1, 30, 5
Permet d'obtenir les 30% plus grand éléments de la colonne 1.
Application.Dialogs(xlDialogFilter).Show 3, 40, 6
Permet d'obtenir les 40% plus petits éléments de la colonne 3.

Le problème avec cette boite concerne les dates.
Si par exemple, j'ai les données suivante :
LesDates
14/02/04
02/02/04
13/02/04
24/02/04
25/02/04
06/02/04
17/02/04
08/02/04
09/02/04
20/02/04
22/02/04
12/02/04
23/02/04
14/02/04
15/02/04
Et que je veux proposer un filtre, modifiable par l'utilisateur, mais qui propose en standard toutes les dates supérieure a
aujourd'hui - 3 jours.
J'utilise cette ligne de code :
Application.Dialogs(xlDialogFilter).Show 3, ">=" & Format(Now - 3, "mm/dd/yy")
J'obtient la boite qui fonctionne correctement si on appuis sur OK, mais le critère n'est pas formaté en date et affiche 38030 ce
qui peut être déroutant.
Si quelqu'un a une solution ?
Merci.

Alain CROS.

"michdenis" a écrit dans le message de news:
Bonjour Philo,


Remplir La Fenêtre Filtre Automatique Lors De Son Affichage





'Affiche la boîte de dialogue "Filtre automatique

Application.Dialogs(xlDialogFilter).Show



'La commande peut accepter 4 paramètres :



Application.Dialogs(xlDialogFilter).Show 3, "<>12", 2, "<>12"



'Premier paramètre :

'Le 3 = Le Numéro de la colonne 3 de la plage de données

'sur laquelle s'effectue le filtre automatique



'Deuxième paramètre : Premier critère du filtre

'">12" = Plus grand que 12



'Troisième paramètre : Si le filtre possède 2 critères :

'Le 1 = "ET" Pour le 2 = "OU"

Application.Dialogs(xlDialogFilter).Show 3, ">12", 2, "<20"



'Quatrième paramètre : Le deuxième critère du filtre

'"<12" = Plus Petit que 20



Comment saisir les différents types de critère de la boîte de dialogue

----------------------------------------------------

'Sur une plage numérique



'Critère : "Égal" à 12

'Application.Dialogs(xlDialogFilter).Show 3, ""



'Critère : "Différent de" 12

'Application.Dialogs(xlDialogFilter).Show 3, "<>12"



'Critère : "Plus grand que" 12

'Application.Dialogs(xlDialogFilter).Show 3, ">12"



'Critère : "Plus petit que" 12

'Application.Dialogs(xlDialogFilter).Show 3, "<12"

----------------------------------------------------




'Dans les cas suivants le champ(colonne) doit être du "texte"



'Critère : Contient : toto1

Application.Dialogs(xlDialogFilter).Show 3, "toto1*"



'Critère : Ne Contient pas : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>*toto1*"



'Critère : Commence par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "toto1*"



'Critère : Ne Commence pas par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>toto1*"



'Critère : Se termine par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "*toto1"



'Critère : Ne se termine pas par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>*toto1"

----------------------------------------------------





Salutations!





"Philo" a écrit dans le message de news:e18801c3f0d7$3d4edfc0$
Lors d'un filtre automatique "personnalisé" le
filtre "égal" est par défaut.
Comment mettre à la place "contient" par défaut ?
Merci
Philo






Avatar
Alain CROS
Bonjour.

Merci de ta suggestion, mais apparemment, ça ne fonctionne pas avec mon format de date jj/mm/aa.

Alain CROS.

"isabelle" a écrit dans le message de news:
bonjour Alain,

je met un espace devant et ça fonctionne.

y = " " & Application.Text(Date - 3, "yyyy-mm-dd")
Application.Dialogs(xlDialogFilter).Show 1, ">=" & y

isabelle



Avatar
isabelle
bonjour Alain,

même manuellement ">=" ne fonctionne pas sur mon pc avec ce format de
date, c'est considéré comme étant du texte, mais si je met seulement "="
là ça fonctionne.

isabelle



Bonjour.

Merci de ta suggestion, mais apparemment, ça ne fonctionne pas avec mon format de date jj/mm/aa.

Alain CROS.

"isabelle" a écrit dans le message de news:
bonjour Alain,

je met un espace devant et ça fonctionne.

y = " " & Application.Text(Date - 3, "yyyy-mm-dd")
Application.Dialogs(xlDialogFilter).Show 1, ">=" & y

isabelle





Avatar
michdenis
Bonjour Alain,

Merci pour le complément.

Pour les dates :

Ce que tu as utilisé pour les dates :

En utilisant les symboles ">=" , ">" , "<" , "<=" , "<>"

Y = " " & Application.Text(Date - 1, "yyyy-mm-dd")
Application.Dialogs(xlDialogFilter).Show 1, ">=" & Y

Cela fonctionne très bien en autant que l'on affiche les dates dans la boîte de dialogue selon le format que tu as
défini. les autres formats ne semblent pas être admissible !!!

Il est important de noter que ce n'est pas tous les formats date que excel peut gérer même en saisissant manuellement la
date via la liste déroulant de la boîte de dialogue. Essaie avec un format date dans les cellules de de type : 10 03 04
(10 mars 2004) . Excel n'arrive pas à résoudre


En utilisant le symbole "="

Le format dans le critère doit être exactement le même à celui affiché dans la cellule contenant le critère.

D = "=" & "11-03-04"

D = "=" & "13 février, 2004"

Application.Dialogs(xlDialogFilter).Show 1, D


Conclusion : Encore une fois, le travail avec excel concernant les dates n'est pas simple. Il est difficile de cerner
comment l'application travail avec les dates.





"Alain CROS" a écrit dans le message de news:
Bonjour.

Merci de ta suggestion, mais apparemment, ça ne fonctionne pas avec mon format de date jj/mm/aa.

Alain CROS.

"isabelle" a écrit dans le message de news:
bonjour Alain,

je met un espace devant et ça fonctionne.

y = " " & Application.Text(Date - 3, "yyyy-mm-dd")
Application.Dialogs(xlDialogFilter).Show 1, ">=" & y

isabelle



Avatar
michdenis
Bonjour Alain,

" Application.Dialogs(xlDialogFilter).Show 3, ">=" & Format(Now - 3, "mm/dd/yy")
J'obtient la boite qui fonctionne correctement si on appuis sur OK, mais le critère n'est pas formaté en date et
affiche 38030 ce qui peut être déroutant "

Voici la seule altenative que j'ai trouvé pour que la boîte de saisie affiche un format date avec cette formule.

Y = " " & Application.Text(Date - 1, "yyyy-mm-dd")







Salutations!







"Alain CROS" a écrit dans le message de news:
Bonjour.

En complément.
Si le 3eme paramètre est > 2, on obtient une bd qui permet d'obtenir les x (Paramètre 2) premiers en partant soit du
haut,
soit du bas par éléments ou en pourcentage.
Exemple:
Application.Dialogs(xlDialogFilter).Show 5, 6, 3
Permet d'obtenir les 6 + grand éléments de la colonne 5.
Application.Dialogs(xlDialogFilter).Show 2, 3, 4
Permet d'obtenir les 3 + petit éléments de la colonne 2.
Application.Dialogs(xlDialogFilter).Show 1, 30, 5
Permet d'obtenir les 30% plus grand éléments de la colonne 1.
Application.Dialogs(xlDialogFilter).Show 3, 40, 6
Permet d'obtenir les 40% plus petits éléments de la colonne 3.

Le problème avec cette boite concerne les dates.
Si par exemple, j'ai les données suivante :
LesDates
14/02/04
02/02/04
13/02/04
24/02/04
25/02/04
06/02/04
17/02/04
08/02/04
09/02/04
20/02/04
22/02/04
12/02/04
23/02/04
14/02/04
15/02/04
Et que je veux proposer un filtre, modifiable par l'utilisateur, mais qui propose en standard toutes les dates
supérieure a
aujourd'hui - 3 jours.
J'utilise cette ligne de code :
Application.Dialogs(xlDialogFilter).Show 3, ">=" & Format(Now - 3, "mm/dd/yy")
J'obtient la boite qui fonctionne correctement si on appuis sur OK, mais le critère n'est pas formaté en date et affiche
38030 ce
qui peut être déroutant.
Si quelqu'un a une solution ?
Merci.

Alain CROS.

"michdenis" a écrit dans le message de news:
Bonjour Philo,


Remplir La Fenêtre Filtre Automatique Lors De Son Affichage





'Affiche la boîte de dialogue "Filtre automatique

Application.Dialogs(xlDialogFilter).Show



'La commande peut accepter 4 paramètres :



Application.Dialogs(xlDialogFilter).Show 3, "<>12", 2, "<>12"



'Premier paramètre :

'Le 3 = Le Numéro de la colonne 3 de la plage de données

'sur laquelle s'effectue le filtre automatique



'Deuxième paramètre : Premier critère du filtre

'">12" = Plus grand que 12



'Troisième paramètre : Si le filtre possède 2 critères :

'Le 1 = "ET" Pour le 2 = "OU"

Application.Dialogs(xlDialogFilter).Show 3, ">12", 2, "<20"



'Quatrième paramètre : Le deuxième critère du filtre

'"<12" = Plus Petit que 20



Comment saisir les différents types de critère de la boîte de dialogue

----------------------------------------------------

'Sur une plage numérique



'Critère : "Égal" à 12

'Application.Dialogs(xlDialogFilter).Show 3, ""



'Critère : "Différent de" 12

'Application.Dialogs(xlDialogFilter).Show 3, "<>12"



'Critère : "Plus grand que" 12

'Application.Dialogs(xlDialogFilter).Show 3, ">12"



'Critère : "Plus petit que" 12

'Application.Dialogs(xlDialogFilter).Show 3, "<12"

----------------------------------------------------




'Dans les cas suivants le champ(colonne) doit être du "texte"



'Critère : Contient : toto1

Application.Dialogs(xlDialogFilter).Show 3, "toto1*"



'Critère : Ne Contient pas : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>*toto1*"



'Critère : Commence par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "toto1*"



'Critère : Ne Commence pas par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>toto1*"



'Critère : Se termine par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "*toto1"



'Critère : Ne se termine pas par : toto1

Application.Dialogs(xlDialogFilter).Show 3, "<>*toto1"

----------------------------------------------------





Salutations!





"Philo" a écrit dans le message de news:e18801c3f0d7$3d4edfc0$
Lors d'un filtre automatique "personnalisé" le
filtre "égal" est par défaut.
Comment mettre à la place "contient" par défaut ?
Merci
Philo




Avatar
Alain CROS
Bonjour.

Je te remercie de tes différents messages sur le sujet.
Excel et Vba semble avoir du mal avec le format de date jj/mm/aa pourtant proposé en standard dans format cellule.
Si je trouve une solution, je transmettrais.
Encore merci.

Alain CROS.

"michdenis" a écrit dans le message de news:
Bonjour Alain,

" Application.Dialogs(xlDialogFilter).Show 3, ">=" & Format(Now - 3, "mm/dd/yy")
J'obtient la boite qui fonctionne correctement si on appuis sur OK, mais le critère n'est pas formaté en date et
affiche 38030 ce qui peut être déroutant "

Voici la seule altenative que j'ai trouvé pour que la boîte de saisie affiche un format date avec cette formule.

Y = " " & Application.Text(Date - 1, "yyyy-mm-dd")

Salutations!