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 :

Les dates et le vba. [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Billets dans le blog
    1
    Par défaut Les dates et le vba.
    Bonjour,

    je cherche à avoir une confirmation de ce que je viens de constater :
    j'ai constaté un problème de date en vba (inversion du jour et du mois, chose classique du genre : 01/03/11 sur la feuille et quand ça passe dans le code, je récupère 03/01/11)

    j'ai essayé de forcer le format (dd/MM/yy), d'utiliser Cdate

    et je viens de constater que si je déclare une variable en date et non en string , celà suffit à conserver le format entré dans la feuille de calcul, plus besoin d'artifice quelconque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
    Dim madate As Date
     
    madate = Cells(1, 1).Value
     
    Cells(3, 1).Value = madate
    Cells(4, 1).Value = CDate(madate)
     
    End Sub
    qqn peut-il me confirmer cela!!!

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    réponse : oui.
    Et un peu de lecture sur les dates : .

    Cordialement,

    PGZ

  3. #3
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Billets dans le blog
    1
    Par défaut
    ça fait bien 2 ans que je galère avec cette histoire là!!

    merci

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Ayant déjà eu à lutter contre ces formats étranges que revêtent les dates sous VBA, je te confirme que la meilleure solution est de déclarer tes dates... en Date.
    Pour que ton test soit complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub essai()
    Dim madate As Date
    Dim madate2 As String
    madate = Cells(1, 1).Value
    madate2 = Cells(1, 1).Value
    Cells(3, 1).Value = madate
    Cells(4, 1).Value = CDate(madate)
    Cells(5, 1).Value = Format(madate, "dd/mm/yyyy")
    Cells(6, 1).Value = Format(madate, "mm/dd/yyyy")
    Cells(3, 2).Value = madate2
    Cells(4, 2).Value = CDate(madate2)
    Cells(5, 2).Value = Format(madate2, "dd/mm/yyyy")
    Cells(6, 2).Value = Format(madate2, "mm/dd/yyyy")
    End Sub

  5. #5
    Expert confirmé
    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
    Par défaut
    Bonjour,

    Citation Envoyé par elnipal Voir le message
    j'ai constaté un problème de date en vba (inversion du jour et du mois, chose classique du genre : 01/03/11 sur la feuille et quand ça passe dans le code, je récupère 03/01/11)
    Il ne s'agit pas d'un problème classique d'Excel (ni de formats étranges), mais d'un problème de compréhension de son fonctionnement

    vois ce tutoriel au besoin :

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


    cordialement,

    Didier

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

Discussions similaires

  1. [VBA] Problème sur les dates
    Par Herman dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 11/04/2007, 11h37
  2. [VBA-EXCEL] - Excel et les dates
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/01/2007, 15h21
  3. [VBA-E]Encore une question sur csv et les dates
    Par vovor dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/10/2006, 10h43
  4. [VBA-E] Sélectionner toutes les dates correspondantes à un mois choisit
    Par c_ffiiffii dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 10/06/2006, 11h00
  5. [VBA-E]Les dates
    Par aokiseiichiro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/03/2006, 10h29

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