![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juillet 2006
Messages: 23
|
Bonjour à tous,
Je voudrais savoir s'il est possible d'obtenir dans des cellules l'état du filtre automatique. J'ai joint un fichier exemple. Je souhaiterais que dans les case jaune de la feuill2 apparaissent les valeurs choisies pour le filtre du registre feuill1. Vous remerciant de m'avoir lu, J'espere que cela est possible .... Christophe |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Localisation: Maubeuge
Version Excel : Excel 2000 (PC)
Messages: 6 851
|
Bonjour,
Sous réserve d'avoir compris ton souhait, regarde ce lien : http://www.excel-downloads.com/forum...tomatique.html Comporte des solutions pour extraire la 1ère puis la 2ème puis la nième valeur filtrée Je te laisse regarder et analyser @+
__________________
Ne jamais hésiter à utiliser la recherche sur le Forum, beaucoup de réponses s'y trouvent Amitiés XldiennesXLD vous a aidé, n'hésitez pas à aider XLD |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juillet 2006
Messages: 23
|
En fait pas vraiment ...
Ce que je souhaite (dans mon fichier exemple), c'est que chaque champs de la feuill2 (en-tete identique à la feuill1) reprenne les critères du filtre employé. Encore merci, Christophe, |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Impliqué
|
Salut l'forum,Tibo, krystof_ii,
La proposition faite par Tibo est tout a fait adaptée à ton cas. Sinon, je pense qu'il faudra passer par du VBA. Est-ce ce que tu souhaites? A++ TheLio
__________________
La politesse fait paraître l'homme au dehors comme il devrait être intérieurement. [Jean de La Bruyère] Toi aussi, deviens un/une: Supporter ou supporteur,(trice) . . . . . . (↑cliques là ↑) ![]() |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Brieuc
Version Excel : Excel XP (PC)
Messages: 5 838
|
Bonjour,
Un essai Un formule qui renvoie la 1ère valeur visible puis la 2ème valeur visible différente de la 1ère S'il n'y a pas de 2ème valeur différente, c'est qu'il y a un filtre (ou qu'il n'y a pas plusieurs valeurs différentes) Inconvénient : ne prendre qu'un critère de filtre pour chaque plage |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juillet 2006
Messages: 23
|
Soluce Tibo :
Effectivement, l'information "existe-t-il plusieurs valeurs dans la colonne" pourrait m'indiquer si un filtre "valeur unique" est activé. Mais un filtre peut également etre "inferieur ou égal à" et dans ce cas plusieurs valeurs peuvent exister. Donc cette proposition n'est pas suffisante : il me faudrait également les critères du filtre. Par contre, s'il faut passer par du vba, je ne suis pas contre ... mais quel 'vocabulaire ? Christophe Dernière modification par krystof_ii ; 27/12/2007 à 18h14. |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 2 379
|
Bonsoir krystof_ii, Tibo, TheLio, Monique,
Dans le classeur ci-joint une solution sans doute à paufiner un peu... Exceptionnellement, j'ai utilisé l'évènement Calculate() de la Feuil2 pour "capter" la modification du filtre et déclencher le traitement (cet évènement Calculate est à éviter autant que possible, mais je n'ai pas su faire autrement). J'ai utilisé les 2 procédures ci-dessous : Code:
DANS LE MODULE DE CODE DE LA FEUILLE 2
Option Explicit
Private Sub Worksheet_Calculate()
Static EnCours As Boolean
If EnCours Then Exit Sub
EnCours = True
ValFiltres
EnCours = False
End Sub
Code:
DANS UN MODULE DE CODE STANDARD
Option Explicit
Sub ValFiltres()
'myDearFriend! - www.mdf-xlpages.com
Dim CritFiltres(1 To 3, 1 To 5) As Variant
Dim C As Byte
With Sheets("Feuil1").AutoFilter
For C = 1 To 5
With .Filters(C)
If .On Then
CritFiltres(1, C) = .Criteria1
If .Operator Then
CritFiltres(2, C) = Choose(.Operator, "Et", "Ou")
CritFiltres(3, C) = .Criteria2
End If
End If
End With
Next
End With
With Sheets("Feuil2")
.Range("D2:H4").Value = CritFiltres
End With
End Sub
Cordialement, |
|
|
|
|
|
#8 (permalink) | |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 2 379
|
Re,
Citation:
Dans cet exemple, la procédure évènementielle est remplacée par une Function VBA personnalisée matricielle. Pour l'appliquer, il suffit de sélectionner la plage "D2:H4" de la Feuil2, de saisir =ValFiltres() dans la barre des formules et de valider le tout par CTRL + SHIFT + ENTREE. Code:
DANS UN MODULE DE CODE STANDARD
Function ValFiltres() As Variant
'myDearFriend! - www.mdf-xlpages.com
Dim CritFiltres(1 To 3, 1 To 5) As String
Dim C As Byte
Application.Volatile
With Sheets("Feuil1").AutoFilter
For C = 1 To 5
With .Filters(C)
If .On Then
CritFiltres(1, C) = .Criteria1
If .Operator Then
CritFiltres(2, C) = Choose(.Operator, "Et", "Ou")
CritFiltres(3, C) = .Criteria2
End If
End If
End With
Next
End With
ValFiltres = CritFiltres
End Function
Dernière modification par myDearFriend! ; 28/12/2007 à 03h16. Motif: Optimisation du code VBA |
|
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juillet 2006
Messages: 23
|
Tout simplement : PARFAIT !
myDearFriend!, grace à toi, non seulement cela fonctionne mais en plus j'ai tout le vocabulaire : Sheets("Feuil1").AutoFilter.Filter(i) correspond donc au filtre (i) de la feuille 1 .on => test si le filtre est actif .Criteria1 => 1° valeur de filtre .Criteria2 => 2° valeur du filtre .Operator => opérande. Pour ce qui est du pb de la date, en testant le format de la 1°cellule de la colonne correspondante cela devrait se régler. Par contre, que veut dire application.volatile (quelle est sa fonction ?) Encore merci à tous ! Et bon bout d'an (comme on dit dans le Sud de la France). |
|
|
|
|
|
#10 (permalink) | |
|
XLDnaute Impliqué
|
Hello tous,
Citation:
A++ TheLio
__________________
La politesse fait paraître l'homme au dehors comme il devrait être intérieurement. [Jean de La Bruyère] Toi aussi, deviens un/une: Supporter ou supporteur,(trice) . . . . . . (↑cliques là ↑) ![]() |
|
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 2 379
|
Bonjour krystof_ii, Tibo, TheLio, Monique, le Forum,
Dans l'éditeur VBE, tu places ton curseur sur le mot Volatile et tu presses sur la touche F1. L'aide VBA indique : "Cette méthode marque comme volatile une fonction personnalisée. Une fonction volatile doit être recalculée chaque fois qu'un calcul est effectué dans une cellule quelconque de la feuille de calcul. Une fonction non volatile n'est recalculée qu'en cas de changement des variables d'entrée. Cette méthode est sans effet si elle ne se trouve pas à l'intérieur d'une fonction définie par l'utilisateur utilisée pour calculer une cellule de feuille de calcul. Autrement dit, c'est grâce à cette méthode que l'évènement Calculate() sera "capter" sans même avoir à utiliser la procédure évènementielle correspondante. Chaque fois qu'un calcul est effectué dans une cellule quelconque de la feuille, le recalcul de la fonction personnalisée sera forcé. C'est un élément essentiel qui permet de créer de vraies fonctions personnalisées VBA utilisables dans les feuilles de calcul Excel. Cordialement, |
|
|
|
|
|
#13 (permalink) |
|
XLDnaute Accro
Date d'inscription: mars 2005
Messages: 1 379
|
Bonjour à tous
Voici une méthode que je viens de découvrir. Il utilise les filtres élaborés et une petite macro faite avec l'enregistreur de macros (Faire un choix dans la colonne C de la feuille 2).
__________________
Salutations Michel Pour faire facilement vos comptes personnels http://www.excel-downloads.com/remos...s-MJ-2007.html Trouvez les couleurs Le JEU http://www.excel-downloads.com/forum...-couleurs.html Trouvez le mot http://www.excel-downloads.com/forum...tml#post572580 Dernière modification par MJ13 ; 01/02/2008 à 16h54. |
|
|
|
|
|
#14 (permalink) |
|
XLDnaute Junior
Date d'inscription: juillet 2007
Messages: 52
|
Bonjour à tous,
J'aimerai adapter le fichier de myDearFriend mais je ne sais pas comment m'y prendre. Il faut deja que je copie la macro dans un module: pas de probleme mais quel champs dois je adapter (le nom de la feuille 1...) Ensuite dans les formules, dois je modifier qqchose? Quelqu'un pourrait me les expliquer? Dans l'exemple, cela ne concerne qu'une colonne (la D PERIODE HORAIRE) mais puis je avoir ceci pour plusieurs colonne? Merci d'avance pour votre aide Cordialement Aurelie |
|
|
|
|
|
#15 (permalink) |
|
XLDnaute Accro
Date d'inscription: mars 2005
Messages: 1 379
|
bonjour
On veut un fichier (et une augmentation)!
__________________
Salutations Michel Pour faire facilement vos comptes personnels http://www.excel-downloads.com/remos...s-MJ-2007.html Trouvez les couleurs Le JEU http://www.excel-downloads.com/forum...-couleurs.html Trouvez le mot http://www.excel-downloads.com/forum...tml#post572580 |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Créer une macro ou autre pour obtenir une liste suite à filtre | LELEC | Forum Excel | 5 | 12/10/2007 10h54 |
| Comment obtenir la valeur mini d'un filtre ? | Guesh | Forum Excel | 2 | 22/03/2006 19h44 |
| Comment récupérer les informations d'un filtre automatique ??? | lolo | Forum Excel Downloads - Archives | 2 | 15/10/2004 00h23 |
| tester l'état d'une imprimante | tonio | Forum Excel Downloads - Archives | 3 | 16/06/2004 16h03 |
| valeurs a l'etat d'ouverture | bruno | Forum Excel Downloads - Archives | 2 | 07/04/2003 14h05 |