Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

filtre par mois sur un autre onglet

  • Initiateur de la discussion Initiateur de la discussion kastor
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

kastor

Guest
Bonjour,

j'aimerais faire un filtre pour ne prendre que les valeurs d'une colonne.
J'ai déjà ce code

Range("W1", Cells(Rows.Count, "W").End(xlUp)).AutoFilter Field:=1, Criteria1:="01/07/2013"

Qui ne conserve que le 1er juillet 2013. (Cette colonne contient chaque jour de l'année 2013)

et donc, ma question. !!!!

Comment faire pour ne conserver que les jours du mois de juillet.

j'ai imaginé ce code

Range("W1", Cells(Rows.Count, "W").End(xlUp)).AutoFilter Field:=1, Criteria1:="*/07/*"

mais forcément, ça ne fonctionne pas. Je me tourne vers vous pour m'apporter une lumière.

Merci d'avance.
 
Dernière modification par un modérateur:
Re : macro filtre avec une partie d'une cellule

Range("W1", Cells(Rows.Count, "W").End(xlUp)).AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria2:=Array(1, "7/31/2013")

pour ceux qui veulent, voilà la solution...... (le 7 représente le mois de juillet, donc pour les autres mois ex: janvier la date devra etre 01/31/2013.

Bonne journée à tous
 
Re : filtre par mois sur un autre onglet

BON !!!!! j'ai un autre problème.

j'utilise donc une checkbox (sur laquelle on sélectionne le ou les mois désirés)
ce code est placé sur la feuille ou il y a la checkbox mais il doit modifier une autre feuille (onglet planning)

Code:
If CheckBox7 = True Then

Sheets("planning").Range("W1", Cells(Rows.Count, "W").End(xlUp)).AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria2:=Array(1, "7/31/2013")

Else

Sheets("planning").Range("W1", Cells(Rows.Count, "W").End(xlUp)).AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria1:=Array(1, "7/31/2013")
        End If
mais je n'arrive pas à utiliser ce code sur un autre onglet.
j'ai simplement ajouté "Sheets("planning")." mais ça n'est pas suffisant.

Avez vous un idée ???
 
Re : filtre par mois sur un autre onglet

Bonjour,

essaye en rajoutant également le nom de la feuille aux "cells" :
Code:
Sheets("planning").Range("W1", Sheets("planning").Cells(Rows.Count, "W").End(xlUp)).AutoFilter Field:=1, Operator:= _
        xlFilterValues, Criteria2:=Array(1, "7/31/2013")

bon après midi
@+
 
Re : filtre par mois sur un autre onglet

Par contre
comment faire si je veux ajouter un autre filtre ??

exemple :
M1 = InputBox("Merci de renseigner le code !", vbOKCancel)

Sheets("planning").Range("C1", Sheets("planning").Cells(Rows.Count, "C").End(xlUp)).AutoFilter Field:=1, Criteria1:=M1

Pour résumer mon code précédent est sur une feuille (destination) sur laquelle tout vient se renseigner
et ce code est dans un module "classique" dans lequel je fais d'autres traitements.

mais si le lance ce code après celui vu précédemment, ça ne fonctionne plus car il me vide toutes les lignes.

😕
 
Re : filtre par mois sur un autre onglet

Re,

euh... pas sur d'avoir tout compris... regarde dans l'aide vba la méthode "AutoFilter" tu dois avoir un 2ème argument "criteria2", il faudra également utiliser un "operator"... essaye avec l'enregistreur de macro, te donnera un code brut qu'il faudra adapter....
 
Re : filtre par mois sur un autre onglet

Je reviens une nouvelle fois sur ce post...

dans ce filtre j'arrive à ne pas sélectionner les lignes avec "1" en colonne C pour supprimer toutes les autres (celles qui sont visibles, avant d'être supprimées)

Code:
Sheets("feuil1").Range("C1", Sheets("feuil1").Cells(Rows.Count, "C").End(xlUp)).AutoFilter Field:=1, Operator:= xlFilterValues, Criteria1:="<>" & "1"
     
                With Sheets("feuil1").Cells
                    .Rows(1).EntireRow.Hidden = True
                    .SpecialCells(xlCellTypeVisible).Delete
                    .AutoFilter
                    .EntireRow.Hidden = False
                End With

et j'aimerais faire la même chose en ne sélectionnant pas les dates qui ne sont pas du mois de septembre. avec un code similaire, mais ça ne fonctionne pas. Auriez-vous une idée ???
Code:
Sheets("feuil1").Range("W1", Sheets("feuil1").Cells(Rows.Count, "W").End(xlUp)).AutoFilter Field:=1, Operator:=  xlFilterValues, Criteria2:="<>" & Array(1, "9/30/2013")
J'ai
Erreur d'exécution '13':
Incompatibilité de type.

Je m'y prends peut être mal, mais le but est de copier sur une autre feuilles toutes les lignes qui ont une date en septembre.
 
Re : filtre par mois sur un autre onglet

Bon j'ai enfin trouvé.

pour ceux que ça intéresse

Code:
Sheets("feuil1").Range("$A:$AD").AutoFilter Field:=1, Criteria1:=xlFilterAllDatesInPeriodJanuary, Operator:=xlFilterDynamic
Sheets("feuil1") => nom de la feuille
Range("$A:$AD") => la plage à filtrer
Field:=1 => le numéro de la colonne ou ce situe les valeurs de recherche
Criteria1:=xlFilterAllDatesInPeriodJanuary => pour le mois de janvier, Februray pour février ... etc
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
1 K
Réponses
8
Affichages
653
Réponses
5
Affichages
911
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…