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 :

Conversion Date (français en anglais) [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut Conversion Date (français en anglais)
    Bonjour à tous

    J'ai essayé de réutiliser le code de loacast.
    Malheureusement sur excel 2010 et donc vba 2010, l'ensemble du code est incorrect(mis en rouge:problème de syntaxe).

    Mon objectif étant de convertir les dates française(dd/mm/yyyy) d'une colonne (colonne AF) en format date anglais(mm/dd/yyyy),pour ensuite les trier (inférieur au premier du mois courant:exemple 01/12/12).

    J'ai essayé d'enregistrer une macro en faisant la conversion manuellement, mais après quand je teste la macro en question elle convertit en interchangeant le mois et le jour. De plus elle arrête sa conversion au 13eme jour, car il n'y a pas de 13 mois mais 12, d'où une conversion au préalable en format date anglais.

    NB: les dates sont dans un premier temps en format texte
    d'ou conversion en date et ensuite en date format anglais


    Voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro1()
    '
    ' Macro1
    ' conversion JMA
    'conversion texte en date
    Selection.TextToColumns Destination:=Range("AF1"), DataType:=xlDelimited, _
    TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=True, Semicolon _
    :=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, _
    4), TrailingMinusNumbers:=True
    End Sub
    Je vous remercie d'avance de l'aide que vous m'apporterez.

    Cordialement
    Tiviia

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    Par défaut
    Salut,

    tu parles du code de loacost, mais tu n'indiques pas son code d'origine

    pourquoi chercher à transformer la date si tu la tries ensuite ? Excel sait très bien trier les dates normalement

    Dans quelle langue est ta version Excel ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    Citation Envoyé par loacast Voir le message
    MsgBox Format(#1/1/2005#, "Date, abrégé")

    Avant de chercher comment inverser les jours et les mois, j'ai tenté d'utiliser cette fonction pour une utilisation normale, et ça ne marche pas. Donc je fais encore appel à ton aide et merci.

    EDIT :

    Finalement j'ai trouvé comment utiliser Format dans mon cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim MyTime
        Dim MyStr
        MyTime = #10/12/2004#
     
        MyStr = Format(MyTime, "mm/dd/yyyy")
        MsgBox MyStr
        MyStr = Format(MyTime, "dd/mm/yyyy")
        MsgBox MyStr
    Je veux convertir les date en format anglais, parce que j'ai l'impression que quand je fais un filtre "automatiquement" via macro sur la colonne AF, avec comme critère "<01/12/12":
    Selection.AutoFilter Field:=32, Criteria1:="<01/12/12", Operator:= _
    xlFilterValues

    J'obtiens rien comme ligne correspondant au critère. Je me suis demandé si c'étais pas du au format de la cellule.
    D'ou la conversion en format anglais..pour modifier le code et mettre comme critère "<12/01/2012".

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Criteria1:= "<" & Format(LaDate, "mm/dd/yyyy")
    Cordialement.

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    Merci pour ce code mais il ne fonctionne pas ..
    Ma macro marche que si je convertis manuellement ma colonne AF en JMA(jour mois année). Visuellement, il n'y a pas de changement!

    Ainsi on a:
    Selection.AutoFilter Field:=32, Criteria1:="<12/01/12"
    '12/01/12 premier du mois courant en format anglais

    Donc Il y a permutation entre le jour et le mois, d'ou une conversion inachevée.

    NB:A l'origine le contenu de cellule est en mode Texte

    HELP ME PLEASE

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    As-tu fait l'essai en faisant la conversion de ta colonne texte en date JMA puis en appliquant le code que je t'ai donné ?
    De mon coté, ça marche.

    Cordialement.

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    Bonsoir

    Tu peux m'envoyer ton code?
    Please

  8. #8
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Ci-joint l'exemple cité.

    Cordialement
    Fichiers attachés Fichiers attachés

  9. #9
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Essai avec cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Selection.AutoFilter 32, "<" & #1/12/2012#, 7
    hervé.

  10. #10
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    Bonsoir à vous

    Je vous remercie pour les réponses.

    gFZT82 j'ai testé ta macro sur mes données c'est toujours le même problème.
    Les dates ne sont pas toutes convertis
    Hervé j'ai testé ton code lui aussi il fonctionne pas sur mes données.

    Donc je vous donne un fichier excel avec mes données date.

    Je vous remercie d'avance pour vos futures réponses.

    Cdt

    Tiviia
    Fichiers attachés Fichiers attachés

  11. #11
    Membre régulier
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Par défaut Déja eu un problème semblable
    Bonjour,
    Je ne sais pas si ca va t'aider, car je suis loin d'être un pro en programmation, mais j'ai déjà eu un problème semblage et pour le régler j'ai été modifier les paramètres de date et heure dans le paneau de controle sous l'onglet region et langue.

    en espérant que ca va t'être d'une utilité.
    Bonne soirée

  12. #12
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    J’ai reporté la liste sans modif dans la feuille test. Tu peux lancer la macro en cliquant sur le bouton TEST.
    En réalité, je parviens à une solution qui ne me satisfait qu’à moitié.
    La procédure se déroule en 4 temps.
    - Tri des données
    - Conversion au format date avec CDate
    - Conversion avec la méthode TextToColumns
    - Filtrage
    Je constate (mais je n’explique pas) que si je n’effectue pas la conversion avec Cdate, la conversion avec la méthode TextToColumns ne se fait pas correctement alors qu’en direct avec l’assistant de conversion ça marche très bien. Si quelqu’un a une explication, je suis preneur.

    Cordialement.
    Fichiers attachés Fichiers attachés

  13. #13
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut Un grand Merci !!
    Bonsoir à tous!

    Je vous remercie tous pour votre participation à cette discussion. Plus particulièrement à gFZT82.
    Je suis une novice en VBA.
    Je suis étudiante en licence,et ce savoir-faire est indispensable dans la réussite de mon stage en entreprise.

    Donc je vous remercie encore du temps que vous m'avez accordé!!!

    J'espère un jour être une experte en VBA!

    Cdt

    Tiviia

  14. #14
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut Ptite Question
    Re bonsoir

    J'ai une question !

    Si je veux que la valeur d'une cellule soit le critère comment faire?

    Je sais que dans un premier temps il faut que je convertis les dates de la colonne donné. Les dates en question sont toutes les mêmes, c'est le premier du mois courant (01/12/2012).

    Dans un deuxième temps, associé la valeur de la cellule avec D(variable du programme) (D = CDate("01/12/2012")).

    D'où D=range("$B$2").Value

    Qu'en pensez-vous ?
    Merci d'avance !

  15. #15
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    Je réponds à ma propre question !

    J'ai modifié la variable D:
    D = CDate(Range("$B$2"))

    Et celà fonctionne !

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

Discussions similaires

  1. conversion date anglais/français, visual basic 2008
    Par nathantahiti dans le forum VB.NET
    Réponses: 4
    Dernier message: 18/08/2011, 16h47
  2. [Toutes versions] Format d'affichage d'une date en Français et Anglais
    Par damsmut dans le forum IHM
    Réponses: 2
    Dernier message: 01/06/2010, 17h19
  3. Gestion des dates Français Anglais
    Par zooffy dans le forum ASP.NET
    Réponses: 3
    Dernier message: 06/11/2009, 15h58
  4. [AC-2003] function replace conversion date anglais
    Par lemask dans le forum VBA Access
    Réponses: 6
    Dernier message: 06/05/2009, 11h54
  5. IsDate ou la conversion date anglais/français
    Par pifou25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/04/2007, 19h24

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