Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2011, 11h57   #1
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
Par défaut Manipuler un filtre automatique date?

Bonjour,

J'ai une liste dont la premiere colonne est une date et sur la quelle il y a des filtre automatiques.
Je cherche a faire une macro qui efface toutes les années sauf une.

Actuellement, j'ai ca.
Ca fonctionne mais ca ne m'a pas l'air terrible

Code :
1
2
3
4
5
6
7
8
9
10
11
    annee = InputBox("Quelle année isoler?")
    derlgn = ActiveSheet.UsedRange.Rows.Count
    For i = derlgn To 2 Step -1
        If Cells(i, 1) <> "" Then
            If Str(Year(Cells(i, 1))) <> Str(annee) Then
                Rows(i).Delete Shift:=xlUp
            End If
        Else
            Rows(i).Delete Shift:=xlUp
        End If
    Next i
J'aimerai utiliser le filtre pour aller plus vite, je voudrais filtrer en gardant toutes les années sauf celle choisie, effacer la plage et puis enlever le filtre, mais je ne trouve pas comment automatiser le filtre

Si j'utilise l'enregistreur de macro il me donne ca si je coche all et puis que je décoche 2010
Code :
    ActiveSheet.Range("$A$1:$E$1890").AutoFilter Field:=1, Criteria1:=Array("=" ), Operator:=xlFilterValues, Criteria2:=Array(0, "9/3/2011")
mais je ne trouve pas comme l'adapter.

Il y a une facon de faire ca?
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 12h37   #2
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

Citation:
Code :
ActiveSheet.Range("$A$1:$E$1890").AutoFilter Field:=1, Criteria1:=Array("=" ), Operator:=xlFilterValues, Criteria2:=Array(0, "9/3/2011")
première chose, il y a des chances pour que la date concernée sur ta feuille soit le 3 sept 2011, oui - non ?

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 12h56   #3
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
C'est la derniere date sur laquelle il a un encodage, mais je ne comprends pas ce qu'elle fait la, vu que je ne pensais pas l'utiliser dans le filtre

ce que je fais en manuel et que j'aimerais bien pouvoir faire par macro, c'est ca
objectif.gif

je voudrais décocher une année
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 13h54   #4
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Ben, oui justement la logique des dates est particulière, perso je gère mes base en numéros de série et là tu as de plus l'exemple des interprétations US/FR vba/feuilles...

Teste ainsi en adaptant à ton interface de saisie...

Code :
1
2
3
4
5
6
7
8
9
10
11
Sub FouchetteDate()
Dim AnneeCible As String
Dim AnDebut As String
Dim Anfin As String
 
AnneeCible = "2006"
AnDebut = "01/01/" & AnneeCible
Anfin = "01/01/" & AnneeCible + 1
 
ActiveSheet.Range("$h$3:$I$23").AutoFilter Field:=1, Criteria1:=">=" & AnDebut, Operator:=xlAnd, Criteria2:="<=" & Anfin
End Sub
cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/09/2011, 14h40   #5
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
Ca fonctionne

Merci beaucoup
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h05.


 
 
 
 
Partenaires

Hébergement Web