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


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
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Par défaut Pb format date
    Bonjour,

    J'essaye de stocker des dates dans des cellules Excel avec du VBA. Rien de bien compliqué, je mets ma date en forme à partir d'une cellule Excel (Ex : Je récupère la valeur dans ma variable dtdoc = 20130611) de format standard. Puis je la stocke :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    aa = Left(dtdoc, 4)
    jj = Right(dtdoc, 2)
    mm = Mid(dtdoc, 5, 2)
     
    dtdoc2 = jj & "/" & mm & "/" & aa
    Workbooks(wbprinc.Name).Worksheets("Feuil1").Range("A1").Value = dtdoc2
    Si je regarde la valeur de dtdoc2 pendant l'exécution du code, elle est juste :
    "11/06/2013".

    Mais elle est stockée dans Excel de cette façon : "06/11/2013". Excel met la cellule au format Date (France) automatiquement.

    Existe-t-il une règle particulière pour stocker une date dans une feuille Excel ?

    Merci d'avance !

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Salut coupine


    Je ne comprends pas pourquoi te galérer avec des stringues...

    Tu aimes les strings ? Moi aussi, alors soit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    aa = Left(dtdoc, 4)
    jj = Right(dtdoc, 2)
    mm = Mid(dtdoc, 5, 2)
     
    dtdoc2 = jj & "/" & mm & "/" & aa
    Workbooks(wbprinc.Name).Worksheets("Feuil1").Range("A1").Value = Format(CDate(dtdoc2, "dd/mm/yyyy")

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour Marry,

    c'est normal car la variable n'est pas pas réellement une donnée au format Date (respect d'un type de données) …

    Donc soit déclarer en début de procédure la variable comme une Date : Dim dtdoc2 As Date ,

    soit convertir la variable comme une donnée de type Date :

    Workbooks(wbprinc.Name).Worksheets("Feuil1").Range("A1").Value = CDate(dtdoc2)


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Par défaut
    C'est pas que j'aime les strings plus que les autres types mais c'est la méthode que j'ai trouvée pour transformer mon 20130611 en date. Une autre méthode à suggérer pitêtre ?

    En fait, je n'ai pas pu déclarer ce champ en tant que type Date pour diverses raisons (c'était une date au début et puis j'ai dû mettre le champ en variant mais je t'avoue que je ne sais plus pourquoi). Super ! Merci beaucoup, le CDate est simple et efficace ! Vous êtes des boss !

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    bah un format "aaaammdd"!

    Ou une culotte!

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Par défaut
    Bon ben j'essayerai la culotte la prochaine fois alors ! Je ne savais pas qu'on pouvait !

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Citation Envoyé par Maryy Voir le message
    Bon ben j'essayerai la culotte la prochaine fois alors ! Je ne savais pas qu'on pouvait !
    Les strings c'est mieux!

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

Discussions similaires

  1. Format date : y'a forcément plus simple...
    Par ZERS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/12/2004, 15h28
  2. Transformation en format Date
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/11/2004, 16h20
  3. Tester un format date
    Par Tapioca dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 30/06/2004, 10h18
  4. interfaces Access et format Date
    Par say dans le forum InterBase
    Réponses: 21
    Dernier message: 10/05/2004, 17h24
  5. Format date
    Par cochet dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/03/2004, 08h37

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