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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 682
    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 682
    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
    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.

+ 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