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 :

Macro Excel et problème de dates


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2025
    Messages : 6
    Par défaut Macro Excel et problème de dates
    Hello, je suis novice dans les macros. Afin d'automatiser un rapport, j'ai crée une macro mais la partie filtrage des dates ne fonctionne pas. La voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim DateToday As Date
        Dim DateDebut As String
        Dim DateFin As String
     
        DateToday = Date
        DateDebut = Format(DateToday - 7, "d.m.yyyy")
        DateFin = Format(DateToday - 1, "d.m.yyyy")
     
        Cells.Select
        Selection.AutoFilter
        ActiveSheet.Range("$A$1:$AS$104194").AutoFilter Field:=25, _
        Criteria1:=">=" & DateDebut, Operator:=xlAnd, Criteria2:="<=" & DateFin
    Le filtre ne me retourne aucune entrée alors que la colonne 25 possède bien des entrées inclus dans ce range. Le format de la cellule est Date.
    Une idée sur l'erreur que j'ai commise ?

    Merci

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 987
    Par défaut
    Hello,

    je sais, c'est très konkon, mais il faut mettre les dates sous la forme m/d/aaaa même si vos date sont au format d.m.aaaa. Regardez dans la barre de formule, une date utilise un / comme séparateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim DateToday As Date
        Dim DateDebut As String
        Dim DateFin As String
     
        DateToday = Date
        DateDebut = Format(DateToday - 7, "m/d/yyyy")
        DateFin = Format(DateToday - 1, "m/d/yyyy")
     
        Cells.Select
        Selection.AutoFilter
        ActiveSheet.Range("$A$1:$AS$104194").AutoFilter Field:=25, _
        Criteria1:=">=" & DateDebut, Operator:=xlAnd, Criteria2:="<=" & DateFin
    Ceci dit, la sélection de l'intégralité de la feuille ou de la colonne n'est pas vraiment recommandé
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2025
    Messages : 6
    Par défaut
    Merci mais j'avais déjà essayé, cela ne remonte rien.

    Quand je debugge et que je regarde le filtrage automatique qu'il veut appliquer cela donne :
    Pièce jointe 663736, donc je comprends que cela ne fonctionne pas.
    Pour que cela fonctionne il faudrait qu'il applique :
    Pièce jointe 663738
    Soit DateDebut = Format(DateToday - 7, "m/d/yyyy") et DateFin = Format(DateToday - 1, "m/d/yyyy") ?

    D'ailleurs, quand ce sont ces derniers paramètres qui sont saisis dans le filtrage custom et que je valide, cela fonctionne. Mais la macro le veut pas l'exécuter par elle-meme

    Est-ce que j'ai raté quelque chose ?

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    952
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 952
    Par défaut
    Salut, si ce sont de vraies dates, pourquoi les déclarer en "String" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Dim DateToday As Date
        Dim DateDebut As Date
        Dim DateFin As Date
     
        DateToday = Date
        DateDebut = DateToday - 7 ' 
        DateFin = DateToday - 1  
     
         Cells.Select
        Selection.AutoFilter
        ActiveSheet.Range("$A$1:$AS$104194").AutoFilter Field:=25, _
            Criteria1:=">=" & DateDebut, Operator:=xlAnd, Criteria2:="<=" & DateFin

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2025
    Messages : 6
    Par défaut
    Idem, je n'obtiens aucune ligne.

  6. #6
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 987
    Par défaut
    NB : vos pièces jointes ne sont pas visibles, si ce sont des images mettez les en image jointe, pas en fichier joint.

    Chez moi ça fonctionne...
    On peut avoir un extrait anonymisé de votre fichier ?
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2025
    Messages : 6
    Par défaut
    C'est très étrange, chez moi cela ne fonctionne pas. Voici une partie du fichier. Merci pour ton aide
    Fichiers attachés Fichiers attachés

  8. #8
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 162
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pour ma part, cela fonctionne également.

    Peut-être convertir la date en son équivalent numérique ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim DateDebut As Double
        Dim DateFin As Double
     
        DateToday = Date
        DateDebut = CDbl(DateToday - 7)
        DateFin = CDbl(DateToday - 1)

  9. #9
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 987
    Par défaut
    Voici votre fichier avec la macro qui filtre sur la colonne B
    Fichiers attachés Fichiers attachés
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2025
    Messages : 6
    Par défaut
    Hello, pas de nouveautés chez moi... J'ai fait un screencast pour vous montrer mon problème avec le fichier de "Nain porte koi" : https://go.screenpal.com/watch/cTVrj9nfIDG

  11. #11
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 162
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    as-tu essayé avec la méthode des dates converties en valeur numérique ?

  12. #12
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 987
    Par défaut
    C'est très surprenant

    Quelques remarques :
    vous utilisez un Excel anglais mais vous mettez les dates en français
    Vous utilisez un séparateur de date pas très commun, du moins en France
    Du coup, pouvez vous vérifier le format de date et surtout ce qui est indiqué dans "Paramètres régionaux (emplacement) :"
    Autre chose à voir, dans les paramètres de Windows, le format régional

    Je joins votre fichier avec la macro de joe.levrai qui fonctionne aussi bien chez moi dans lequel j'ai modifié le format de date (jj.mm.aaa) pour correspondre au votre.
    Fichiers attachés Fichiers attachés
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  13. #13
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2025
    Messages : 6
    Par défaut
    Cela fonctionne avec le nouveau format de date. Le format de date chez moi est dd.mm.yyy avec la locale French (Switzerland). Au pays du Gruyère, cela à du avoir une incidence du coup :-)
    Par contre, pourriez-vous m'expliquer la forme "double" pour les variables ?

    Merci encore pour m'avoir enlever cette grosse épine du pied.

  14. #14
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 987
    Par défaut
    Pour Excel, une date est un nombre de jour depuis le 1/1/1900. Aujourd'hui nous sommes le 45 679 jour depuis le 1/1/1900, un type "long" aurait suffit mais joe.levrai est généreux et à prévu que vous utiliseriez sa macro dans un futur très (très, très, très...) éloigné
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  15. #15
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 162
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    j'utilise le Double par réflexe, manipulant souvent des dates avec heures/minutes/secondes

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

Discussions similaires

  1. Recherchev sous macro excel + date aujourdhui par défaut
    Par bzh44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2017, 16h16
  2. [XL-2010] Macro Excel - Filtre Antérieur à la date du jour
    Par Boboheme dans le forum Excel
    Réponses: 1
    Dernier message: 08/03/2014, 12h32
  3. Macro Excel Date
    Par nadeson dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/05/2012, 11h48
  4. Macro excel : Lire date création du mail initial
    Par roidurif dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/03/2011, 16h02
  5. décalage des dates macro excel
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/05/2010, 02h17

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