IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Manipuler un filtre automatique date? [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
        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?

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut
    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
    Nom : objectif.gif
Affichages : 195
Taille : 5,4 Ko

    je voudrais décocher une année

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut
    Ca fonctionne

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Vxi3] Filtre automatique à partir d'une date
    Par Baldenschaft dans le forum Deski
    Réponses: 2
    Dernier message: 30/08/2012, 13h13
  2. [XL-2010] Criteria2 des filtres automatiques sur Date
    Par grpm dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/09/2011, 19h40
  3. [XL-2003] Filtre automatique par macro pour champ date et heure
    Par jedineofr dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/06/2011, 15h37
  4. filtre automatique par rapport à une date
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/11/2009, 16h04
  5. Filtre automatique sur date défaillant
    Par cuterate dans le forum Excel
    Réponses: 2
    Dernier message: 18/08/2009, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo