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 de date 20080319 en 19-mar-08


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Par défaut Conversion de date 20080319 en 19-mar-08
    Bonjour a tous,

    j'ai un souci dans une macro de formatage de fichier Excel de conversion de date. Lorsque j'essaie de changer par exemple 20080319 en 19-mar-08, cela me donne :

    #############

    y a til possibilité ce probleme de date via vba ?

    Merci d'avance !

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En effet, pour Excel, 20080319 est un nombre ou un string mais certainement pas une date.
    Tu ne dis pas où tu prends ta donnée et si c'est un string ou un nombre
    Si c'est un nombre,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateLue = cstr(20080319)
    Si c'est un string
    Avec DateLue quelqu'elle soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    jour = Val(Right(DateLue, 2))
    Mois = Val(Mid(DateLue, 5, 2))
    an = Val(Left(DateLue, 4))
    TaDate = Format(DateSerial(an, Mois, jour), "dd-mm-yyyy")
    MsgBox TaDate

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Par défaut
    Merci !

    Alors effectivement, ici dans mon fichier excel les dates au format YYYYMMDD sont des nombres.

    Mais mon but est de changer, lors du formatage toutes ces dates au format de type 19-Mar-08.

    je fais une macro sur les opérations de formatage 'simple' et je vois pas comment intégrer les éléments que tu viens de me fournir...

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu mets mon code dans une boucle.
    Je suppose que tes dates sont dans la colonne B
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim cell as range, jour as string, mois as string, an as string
    For each cell in Range("B1:B" & range("B65536").end(xlup).row)
         jour = Val(Right(Cell, 2))
         Mois = Val(Mid(Cell, 5, 2))
         an = Val(Left(Cell, 4))
         cell = Format(DateSerial(an, Mois, jour), "dd-mmm-yyyy")
    Next
    A+

  5. #5
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    autre methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim DateLue As String
      DateLue = Sheet1.Range("A1").Value
     
    jour = Val(Right(DateLue, 2))
    Mois = Val(Mid(DateLue, 5, 2))
    an = Val(Left(DateLue, 4))
    TaDate = Format(DateSerial(an, Mois, jour), "dd-mm-yyyy")
    Sheet1.Range("B1").Value = TaDate
     
    End Sub

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Par défaut
    Merci beaucoup Ouskel ca marche!

    Nickel ca marche!

    Tomy je garde ta méthode dans un coin au cas ou je voudrais passer en format dd-mm-yyyy pour toutes mes dates

    thanks

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

Discussions similaires

  1. Conversion de date
    Par jdu dans le forum Access
    Réponses: 2
    Dernier message: 26/01/2005, 16h17
  2. Conversion de dates
    Par Gogoye dans le forum Modules
    Réponses: 5
    Dernier message: 10/08/2004, 11h39
  3. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  4. Conversion de date lors d'un import
    Par bilbon.S dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/03/2004, 14h33
  5. Conversion de date et division 64 bits
    Par dway dans le forum Assembleur
    Réponses: 38
    Dernier message: 27/01/2004, 10h31

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