Excel - Filtre automatique et élaboré
Fermé
Sesk
Messages postés
6
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
17 novembre 2008
-
27 oct. 2008 à 18:24
Sesk Messages postés 6 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 17 novembre 2008 - 17 nov. 2008 à 15:54
Sesk Messages postés 6 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 17 novembre 2008 - 17 nov. 2008 à 15:54
A voir également:
- Excel - Filtre automatique et élaboré
- Si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Photo filtre gratuit - Télécharger - Retouche d'image
- Message automatique thunderbird - Guide
10 réponses
Sesk
Messages postés
6
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
17 novembre 2008
2
17 nov. 2008 à 15:54
17 nov. 2008 à 15:54
Bonjour,
Merci bien pour la réponse. Encore une fois le problème est résolu.
Pour la même raison que précédemment, je ne clos pas le sujet.
Merci.
Sesk
Merci bien pour la réponse. Encore une fois le problème est résolu.
Pour la même raison que précédemment, je ne clos pas le sujet.
Merci.
Sesk
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
550
27 oct. 2008 à 19:32
27 oct. 2008 à 19:32
Je ne comprends pas trop. Si ta macro dit
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="Y"
Selection.AutoFilter Field:=2, Criteria1:="3", Operator:=xlAnd
Ca applique le filtre, ça fait ton pré-choix, et le choix 3 reste dispo....
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="Y"
Selection.AutoFilter Field:=2, Criteria1:="3", Operator:=xlAnd
Ca applique le filtre, ça fait ton pré-choix, et le choix 3 reste dispo....
Sesk
Messages postés
6
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
17 novembre 2008
2
28 oct. 2008 à 11:19
28 oct. 2008 à 11:19
Bonjour,
Tout d'abord merci de cette réponse rapide.
Ci-après la macro que j'ai réalisée qui ne fonctionne pas :
1ère étape de la macro : Filtre évolué.
2ème étape de la macro : Mise en place du filtre automatique sur le pré-choix du filtre évolué.
Résultat : rien n'est fait ou du moins l'étape 2 a supprimé l'étape 1
Indépendamment ces étapes fonctionnent.
Merci
Sesk
Tout d'abord merci de cette réponse rapide.
Ci-après la macro que j'ai réalisée qui ne fonctionne pas :
Sub Essai() Range("A1:C19").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("A22:C23"), Unique:=False Rows("1:1").Select ActiveSheet.ShowAllData Selection.AutoFilter End Sub
1ère étape de la macro : Filtre évolué.
2ème étape de la macro : Mise en place du filtre automatique sur le pré-choix du filtre évolué.
Résultat : rien n'est fait ou du moins l'étape 2 a supprimé l'étape 1
Indépendamment ces étapes fonctionnent.
Merci
Sesk
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
550
28 oct. 2008 à 13:58
28 oct. 2008 à 13:58
Essaye de faire ce que j'ai dit, alors.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sesk
Messages postés
6
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
17 novembre 2008
2
28 oct. 2008 à 17:23
28 oct. 2008 à 17:23
Merci bien pour ce renseignement
Je crois que je me suis imposé une contrainte inutile qui sert à rien : le filtre élaboré. En effet ta proposition me convient.
Petit bémol : la fonction " Criteria1:="Y" " renvoie les possibilités pour Y. J'aimerais que au lieu d'une valeur fixe Y on puisse lire la valeur d'une case sur un autre onglet.
Avec la commande " Criteria1:=Range("I1") ", je suis arrivé à faire lire la valeur x ou y ou z marqué en I1 mais désormais je souhaiterais connaître la commande pour aller lire la valeur en I1 d'un autre onglet.
PS : peux tu m'expliquer ce que fait la commande " Operator:=xlAnd " car j'ai l'impression que sans ça marche aussi.
Merci
Je crois que je me suis imposé une contrainte inutile qui sert à rien : le filtre élaboré. En effet ta proposition me convient.
Petit bémol : la fonction " Criteria1:="Y" " renvoie les possibilités pour Y. J'aimerais que au lieu d'une valeur fixe Y on puisse lire la valeur d'une case sur un autre onglet.
Avec la commande " Criteria1:=Range("I1") ", je suis arrivé à faire lire la valeur x ou y ou z marqué en I1 mais désormais je souhaiterais connaître la commande pour aller lire la valeur en I1 d'un autre onglet.
PS : peux tu m'expliquer ce que fait la commande " Operator:=xlAnd " car j'ai l'impression que sans ça marche aussi.
Merci
LatelyGeek
Messages postés
1758
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
5 janvier 2023
550
28 oct. 2008 à 17:59
28 oct. 2008 à 17:59
Essaye Criteria1:=Range("FeuilX!I1")
Et pour le xlAnd, c'est juste que tu veux "Y" pour le champ 1 ET "3" pour le champ 2. L'autre opérateur serait xlOr. 9a marche sans parce que xlAnd est l'opérateur par défaut.
Et pour le xlAnd, c'est juste que tu veux "Y" pour le champ 1 ET "3" pour le champ 2. L'autre opérateur serait xlOr. 9a marche sans parce que xlAnd est l'opérateur par défaut.
Sesk
Messages postés
6
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
17 novembre 2008
2
29 oct. 2008 à 10:04
29 oct. 2008 à 10:04
Bonjour,
Merci bien pour ces réponses. Le problème est résolu.
Je ne clos pas le sujet car mon projet n'est pas terminé et je risque d'avoir d'autre questions.
Encore un grand merci.
Sesk
Merci bien pour ces réponses. Le problème est résolu.
Je ne clos pas le sujet car mon projet n'est pas terminé et je risque d'avoir d'autre questions.
Encore un grand merci.
Sesk
Sesk
Messages postés
6
Date d'inscription
lundi 27 octobre 2008
Statut
Membre
Dernière intervention
17 novembre 2008
2
14 nov. 2008 à 17:51
14 nov. 2008 à 17:51
Bon en effet j'ai bien fait de ne pas clore le sujet car j'ai rencontré un nouveau problème.
Après avoir fait tous mes choix dans un tableau j'ai créé une macro permettant de raz les choix pour repartir à neuf pour une nouvelle utilisation. Elle met : "afficher tout" pour les filtres.
Cette macro fonctionne bien mais bug si l'opérateur enlève manuellement le choix avant de lancer la macro.
On a essayer la commande :
Il semblerait que ActiveSheet.ShowAllData = False ne soit pas la bonne variable pour indiquer l'état du filtre.
Avez vous une solution?
Dans l'attente d'une réponse
Cordialement
Sesk
Après avoir fait tous mes choix dans un tableau j'ai créé une macro permettant de raz les choix pour repartir à neuf pour une nouvelle utilisation. Elle met : "afficher tout" pour les filtres.
Sheets("Quantité").Select ActiveSheet.ShowAllData Columns("I:M").Select Selection.ClearContents Range("A1").Select
Cette macro fonctionne bien mais bug si l'opérateur enlève manuellement le choix avant de lancer la macro.
On a essayer la commande :
Sheets("Quantité").Select If ActiveSheet.ShowAllData = False Then --> notre pb ActiveSheet.ShowAllData Columns("I:M").Select Selection.ClearContents Range("A1").Select End If
Il semblerait que ActiveSheet.ShowAllData = False ne soit pas la bonne variable pour indiquer l'état du filtre.
Avez vous une solution?
Dans l'attente d'une réponse
Cordialement
Sesk
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
14 nov. 2008 à 19:46
14 nov. 2008 à 19:46
Bonsoir,
traite l'erreur sans te poser de question :
on error resume next
ActiveSheet.ShowAllData
on error goto 0
eric
traite l'erreur sans te poser de question :
on error resume next
ActiveSheet.ShowAllData
on error goto 0
eric
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 706
14 nov. 2008 à 23:38
14 nov. 2008 à 23:38
bonjour
Il faut remplacer :
If ActiveSheet.ShowAllData = False Then --> notre pb
par
If ActiveSheet.FilterMode = True Then
et l'erreur ne se produit plus.
Il faut remplacer :
If ActiveSheet.ShowAllData = False Then --> notre pb
par
If ActiveSheet.FilterMode = True Then
et l'erreur ne se produit plus.