filtre par mois sur un autre onglet

kastor

XLDnaute Junior
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 édition:

kastor

XLDnaute Junior
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
 

kastor

XLDnaute Junior
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 ???
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

kastor

XLDnaute Junior
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.

:confused:
 

Pierrot93

XLDnaute Barbatruc
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....
 

kastor

XLDnaute Junior
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.
 

kastor

XLDnaute Junior
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
 

Discussions similaires

Statistiques des forums

Discussions
312 466
Messages
2 088 677
Membres
103 918
dernier inscrit
comite des fets allonzier