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 :

Pb format date anglais/Français


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut Pb format date anglais/Français
    Bonjour à vous tous

    Je reviens vers ce forum car j'ai un soucis sur une macro

    Cette macro me sert à tronsvaser des lignes d'un classeur à un autre.( Pas toute la ligne: certaines valeurs).

    Dans le fichier source une des cellules qui est une date est au format standard.

    J'utilise une ligne pour convertir la colonne date en format date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Columns("J:J").Select
        Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(1, 4), TrailingMinusNumbers:=True
    Ensuite je copie cette cellule vers le deuxieme classeur comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Range("R" & j).Value = Format(Workbooks(GaG_FIC).Worksheets(1).Cells(i, 10).Value, "dd/mm/yyyy")
    Et c'est là que certaines dates passe en format americain.

    02/082007 passe en 08/02/2007 par exemple.


    Toute aide sera la bien venue

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(GaG_FIC).Worksheets(1).Cells(i, 10).NumberFormat = "dd\/mm\/yyyy"
    Les 'backslash' permettent d'obliger l'affichage des 'slash' si tu as un '-' de défini comme séparateur de date dans les paramètres régionaux.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    ca marche pas.

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Alors, 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
    19
    20
    21
    22
    23
    24
    25
    Sub FormaterDate()
        ' La cellule A1 qui a servi a faire le test a été renseignée
        ' en tappant le raccourcis clavier Ctrl + ;
        ' Une copie de A1 existe en format texte (NumberFormat)
        ' dans la cellule A2.
     
        Dim laDate As Variant
        Dim cellule As Range
     
        For Each cellule In Range("A1:A2")
            If IsDate(cellule.Value) Then
                ' pas de problème
              Else
                ' il faut faire une conversion
                ' car la cellule est probablement en format de texte
                If cellule.NumberFormat = "@" Then
                    ' en effet, c'est bien du texte
                    laDate = cellule.Value
                    cellule.NumberFormat = "General"
                    cellule.Value = laDate
                End If
            End If
            cellule.NumberFormat = "dd\/mm\/yyyy"
        Next
    End Sub

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 243
    Points : 86
    Points
    86
    Par défaut
    Le plus bizarre dans tout ça c'est que toutes ces solutions marchents pour toutes les dates sauf pour une 02/08/2007 ( 2 Aout 2007) qui passe à 08/02/207
    A suivre donc...

  6. #6
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Elles viennent d'où ces dates ?

    Quand on tape une date à la main dans Excel, il faut la taper dans le bon ordre. Pour connaître l'ordre (année mois jour, par exemple) à utiliser sans avoir à toujours consulter les paramètres d'Excel ou encore les paramètres régionaux du système, tu tapes Ctrl + ; (controle plus point-virgule) dans une cellule vide.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Bonjour (Rimouski,...Canada??)

    Ca fait quelques mois que je participe à ce (super)forum, et je suis complètement occis par ces problèmes récurrents de format de date.

    Ca finit par énerver

    Je crois que dans les tutos,FAQ,.. ,il y a largement de quoi cogiter convenablement.

    Il faudrait aussi regarder les Formats de Date Personnalisés- je m'en sers et je m'y retrouve très bien.

    A+

  8. #8
    Membre habitué Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Points : 140
    Points
    140
    Par défaut
    salut,

    J'aime bcp aussi ce forum, et ce que j'en ai retenu, c'est qu'il existe plusieurs façon de contourner 1 problème
    A mon avis ton copie/colle, ne prend pas en compte le format de la cellule.

    je te propose une solution a toi de l'essayer et de l'adapter.

    mon but est découper la date en fragment, de transporter les fragments vers ton fichier excel et de tout recoller
    je pars du principe que ta date est sous cette forme jj/mm/aaaa

    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
    Sub date_transfert()
     
    date = Range("a1") 'récupération de la date dans une cellule
     
    jour = Left(date, 2) 'récupère le jour
     
    an = Right(date, 4) 'récupère l'année
     
    mois = Left(Right(date, 7), 2) 'récupération du mois
     
    ' a ce moment tu te déplace vers le fichier ou tu vas tout coller
     
    date2 = jour & "/" & mois & "/" & an ' et tu colles
     
    End Sub

Discussions similaires

  1. Format date (anglais / français)
    Par delavega dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/01/2012, 15h39
  2. [phpMyAdmin] Format DATE en français par défaut
    Par fchevali dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 07/05/2008, 10h52
  3. format date anglais et français en vba
    Par triaguae dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/04/2008, 13h13
  4. 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, 20h24
  5. Format Date Anglais/Français
    Par macben dans le forum Oracle
    Réponses: 4
    Dernier message: 22/08/2005, 11h12

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