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 :

Pbl de date au format anglais [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut Pbl de date au format anglais
    Bonjour à toutes et tous et bonne année et quelle soit fructueuse en solutions


    Voilà mon soucis

    lorsque par macro j'ai transferer des dates d'une feuille à l'autre (même classeur) certaines date se mettent au format anglais.
    Exemple 12/03/2013 devient 03/12/2013 orc'est une date d'echéance angoisse !!!!
    Histoire que se soit plus drole c'est pas toutes les dates avant le 12 qui sont concernées ...)

    J'ai palier à mon pbl en mettant des espaces avant et après les slashs car je fais pas de calcul avec les dates mais c'est pas propre si quelqu'un à une autre idéee

    Maintenant je suis en 2010
    j'ai un fichier qui m'arrive avec des points comme séparateur de date
    exemple 12.03.2013
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub ppoint()
        Columns("A:A").Select
        Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    End Sub
    et là toutes les dates se mettent au format anglais et en format texte.
    enfin toutes celles qui sont avant le 13.

    j'espère avoir été clair

    si quequ'un à une idée

    merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Je te propose de conjuger la méthode DateSerial (http://www.techonthenet.com/excel/fo...dateserial.php) et la méthode Format (http://www.techonthenet.com/excel/fo...ormat_date.php).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 0 To Columns(1).Find("*", , , , xlByColumns, xlPrevious).row
        str = Range("A1").Offset(i, 0).Value
        dte = DateSerial(Right(str, 4), Mid(str, 4, 2), Left(str, 2))
        Range("A1").Offset(i, 0) = Format(dte, "dd/mm/yyyy")
    Next i
    Tiens moi au courant !

  3. #3
    Expert éminent
    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
    Points : 6 699
    Points
    6 699
    Par défaut
    Citation Envoyé par Igloobel Voir le message
    ... certaines date se mettent au format anglais.
    Exemple 12/03/2013 devient 03/12/2013 orc'est une date d'echéance angoisse !!!!
    Histoire que se soit plus drole c'est pas toutes les dates avant le 12 qui sont concernées ...)
    ça répond à une certaine logique

    voir : Comprendre et gérer les dates sous Excel et en VBA


    cordialement,

    Didier

  4. #4
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Non en fait ça ne marche pas...

    Par contre le code suivant fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub test()
    Dim Str As String
    Dim myday As String
    Dim mymonth As String
    Dim myyear As String
     
    With Worksheets("...")
    For i = 0 To Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row - 1
        Str = Range("A1").Offset(i, 0).Value
        myday = Left(Str, 2)
        mymonth = Mid(Str, 4, 2)
        myyear = Right(Str, 4)
     
        Range("A1").Offset(i, 0) = DateValue(myday & "/" & mymonth & "/" & myyear)
    Next i
    End With
    En m'excusant des bétises que je peux écrire...
    Tiens nous au courant !

  5. #5
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Merci a tous deux

    je teste

    pour Ormonth

    Super article qui m'a fait comprendre bien des choses

    Dès que j'ai finalisé mo code je le mets

    merci

  6. #6
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    n'ayant pas compris ta ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    For i = 0 To Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row - 1
    ...
    J'ai comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub Maacro()
        Dim Extr_J, Extr_M, Extr_A As String
        Dim Lign, Nbligne As Long
    '    Columns("B:B").Select
    '    Selection.NumberFormat = "0"
        Range("A1").Select
        Cells(1, 1).Select
        Set Plage = Range("A1", [A1].End(xlDown))
        Nbligne = Plage.Count
     
        For Lign = 2 To Nbligne
            Extr_J = Left(Cells(Lign, 1).Value, 2)
            Extr_M = Mid(Cells(Lign, 1).Value, 4, 2)
            Extr_A = Right(Cells(Lign, 1).Value, 4)
            Cells(Lign, 1).Value = DateValue(Extr_J & "/" & Extr_M & "/" & Extr_A)
        Next Lign
     
    End Sub
    et bien sur ça marche

    mais une question

    Plage je le déclare comme quoi type Range ou autre chose?

  7. #7
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 0 To Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row - 1
    Boucle de i = 0 à i = n° de la dernière ligne non vide de la colonne 1 -1.

    Et "Plage" doit bien sûr être déclaré en tant que "Range".

    Bonne continuation à toi !

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

Discussions similaires

  1. [AC-2010] convertir la date de format anglais au format français
    Par Nouha04 dans le forum Access
    Réponses: 1
    Dernier message: 26/07/2012, 14h44
  2. [CR XI] Mettre un date au format anglais
    Par klaver EDI dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 19/02/2012, 19h44
  3. [MySQL] Affichage date au format anglais
    Par stefanelle dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/12/2008, 16h14
  4. [VBA Excel] convertir une date francaise au format anglais
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2005, 16h52
  5. affichage date() format anglais
    Par nazimb dans le forum ASP
    Réponses: 10
    Dernier message: 14/10/2004, 14h08

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