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 :

valeur dans filtre auto qui ne fonctionne pas [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 7
    Points
    7
    Par défaut valeur dans filtre auto qui ne fonctionne pas
    Salut à tous,
    Voilà mon probleme, dans une feuille "Data" où est positionné un filtre auto, j'ai une colonne "date" avec sur chaque ligne une date au format 01/xx/xxxx pour identifier les mois en question :
    janvier 2010 = 01/01/2010
    février 2010 = 01/02/2010
    ...
    décembre 2010 = 01/12/2010
    Pour la lecture du tableau, j'ai mis en forme les cellules : format -> date -> type = mmm-aa (soit janv-10, févr-10, etc.).
    Dans une macro, j'active le filtre auto :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Data").Select
    Selection.AutoFilter Field:=8, Criteria1:=Format(export_date, "mmm-yy")
    Probleme : le filtre s'active mais toutes les lignes sont masquées !

    Qui peut m'éclairer ?
    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour slavovensky,

    a priori, il ne faut pas tenir compte du format d'affichage des dates

    si ta variable export_date est bien du type Date,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFilter Field:=8, Criteria1:=export_date
    devrait suffire

    sinon,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFilter Field:=8, Criteria1:=CDate(export_date)

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    j'ai modifié le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public export_date As Date
    Selection.AutoFilter Field:=8, Criteria1:=export_date
    même résultat, la valeur du filtre = 5/1/2010

    Un pb de format de date dd/mm/yyyy vs m/d/yyyy ?

  4. #4
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Re,

    et la variable export_date, elle est censée contenir le 5 janvier ou le 1er mai, quand tu fais le test ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    01/05/2010 soit le 1er mai 2010, quelle valeur export_date doit prendre :
    export_date = "01/05/2010"
    export_date = format("01/05/2010","dd/mm/yyy")
    export_date = CDate("01/05/2010")
    ?

  6. #6
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour à tous,

    Oui, en effet, après plusieurs tests c'est plus complexe que prévu...

    un version qui semble fonctionner, mais un peu complexe

    Si export_date est du Type Date et est égale au 1er mai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFilter Field:=8, Criteria1:=">=" & Format(export_date, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format(export_date, "mm/dd/yyyy")
    sur les égalités, j'ai pas réussi (on dirait qu'il ne gère que le texte pour les égalités)

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Super ça fonctionne, mais je sais pas pourquoi ???
    Merci encore pour votre aide.

  8. #8
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Re,

    "La théorie, c'est quand on sait tout et que rien ne fonctionne. - La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, la pratique et la théorie sont réunies, rien ne fonctionne et personne ne sait pourquoi. "

  9. #9
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim export_date As Date
    Range("A1:A20").AutoFilter Field:=1, Criteria1:=CStr(Format(export_date, "mm-yy"))
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  10. #10
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour mercatog,

    J'ai testé ta version en mettant l'ensemble de la colonne A au format "mm-aa" et ça ne fonctionne pas chez moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim export_date As Date
    export_date = DateSerial(2010, 5, 1)
    Range("A1:B20").AutoFilter Field:=1, Criteria1:=CStr(Format(export_date, "mm-yy"))
    Edit : Oups, désolé, erreur dans le nom de la variable, en effet ça fonctionne

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

Discussions similaires

  1. Option "Lancer dans le terminal" qui ne fonctionne pas avec Konsole
    Par Dr Rodney Mckay dans le forum Qt Creator
    Réponses: 0
    Dernier message: 19/01/2013, 15h40
  2. [Débutant] Linq to entities : insert dans la DB qui ne fonctionne pas
    Par patxy dans le forum Linq
    Réponses: 1
    Dernier message: 13/04/2012, 11h26
  3. Réponses: 2
    Dernier message: 28/04/2010, 18h13
  4. Réponses: 0
    Dernier message: 02/12/2009, 08h27
  5. Range.Offset(1) dans une boucle qui ne fonctionne pas
    Par Pierre.g dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2008, 11h58

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