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 :

[VBA-E]Variable + format


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Par défaut [VBA-E]Variable + format
    Bonjour,

    Dans un classeur avec plusieurs feuilles, j'ai une cellule contenant une date ex: 15/03/07) que j'ai paramétré en jj/mm/aa

    Dans ma macro, j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date1 = Format(Sheets("Données").Range("D10"), "ddmmyy")
    Si je fais Msgbox Date1 pour vérifier le résultat, le 15/03/07 devient :

    11/07/2311

    Qu'ai-je fait de mal ?

    Merci

  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
    Tu mets
    Date1 = Format(Sheets("Données").Range("D10"), "ddmmyy")
    ou ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date1 = Format(Sheets("Données").Range("D10"), "dd/mm/yy")
    parce que si c'est la première option, je suis même étonné que tu aies "11/07/2311"

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Tiens je viens de tester un truc marrant

    J'ai écrit ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Dim date1 As Date
    date1 = Format(Sheets("Feuil1").Range("F9"), "ddmmyy")
    MsgBox date1
    End Sub
    Effectivement il me retourne ce que tu as dit..

    Mais si tu écris ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
    date1 = Format(Sheets("Feuil1").Range("F9"), "ddmmyy")
    MsgBox date1
    End Sub
    Il te renvoie la bonne date

    Bref

    Le problème vient du fait que ta date est un nombre, donc ici par exemple ta date en fait c'est 39156 du coup il te le met au format date, et il a un peu de mal Excel
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Logique...

    En utilisant Format, on transforme la date en String.
    En envoyant une String dans une variable de type Date, il peut se passer n'importe quoi...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    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
    Et si on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Dim date1
    date1 = Format(cdate(Sheets("Feuil1").Range("F9")), "ddmmyy")
    MsgBox date1
    End Sub
    ça donne quoi ? hein ? On a bien ce qu'on a demandé => "ddmmyy"

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Par défaut
    Ouskel, c'est bien la première des deux options que j'avais utilisé avec le résultat que je vous ai donné plus haut.

    J'ai essayé de déclaré la variable sans lui affecter un genre particulier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Dim date1
    date1 = Format(cdate(Sheets("Feuil1").Range("F9")), "ddmmyy")
    MsgBox date1
    End Sub
    ...et ça marche impecc.

    Merci pour votre aide à tous

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

Discussions similaires

  1. [VBA-E]Variable globale?
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/04/2006, 13h18
  2. [VBA-E]variable en tableau - controle combobox
    Par gojaru dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/04/2006, 17h07
  3. VBA pb de format avec excel
    Par 24 faubourg dans le forum Access
    Réponses: 1
    Dernier message: 08/12/2005, 12h46
  4. [VBA] Pb de format des dates dans un état
    Par linda15975 dans le forum IHM
    Réponses: 45
    Dernier message: 21/06/2005, 14h49
  5. [VBA] Access-> Excel Format de cellule
    Par toflofr dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/07/2003, 14h26

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