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 :

Formater une cellule en VBA pour recevoir une date


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 320
    Points : 311
    Points
    311
    Par défaut Formater une cellule en VBA pour recevoir une date
    Salut,

    J'exporte des valeurs depuis une base de données Access vers un classeur Excel que je créé à la volée.

    Mon problème est de faire en sorte d'afficher correctement les dates dans les cellules, car bien que les valeurs récupérées dans la base soient au format Date, dans Excel elles apparaissent sous forme d'entiers.

    Je cherche quelle méthode me permettrait de définir un format date sur une plage de cellule en VBA.

    Je suppose que c'est une méthode de l'objet Range, mais je sèche...
    *.Har(d)t
    ---
    "Je donnerais mon bras droit pour être ambidextre"
    Brian W. Kernighan

  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
    Avec la fonction Format?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cellule As Range
    For Each cellule In Range("B2:B18")
        cellule.Value = Format(cellule.Value, "dd mmmm yyyy")
    Next cellule
    Ce code reformate les cellules B2 à B18 en date longue.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 320
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par zazaraignée
    Avec la fonction Format?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cellule As Range
    For Each cellule In Range("B2:B18")
        cellule.Value = Format(cellule.Value, "dd mmmm yyyy")
    Next cellule
    Ce code reformate les cellules B2 à B18 en date longue.
    Merci de ta réponse.

    Apparemment ça ne fonctionne pas car cellule.value n'est pas reconnue (Membre de méthode ou de données introuvable)

    Je vais essayer de creuser en utilisant Format; j'espérais juste qu'il y avait plus simple (comme une méthode dédiée pour l'objet range par exemple )
    *.Har(d)t
    ---
    "Je donnerais mon bras droit pour être ambidextre"
    Brian W. Kernighan

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cellule As Range
    For Each cellule In Range("B2:B18")
        cellule.NumberFormat = "dd/mm/yy;@"
    Next cellule
    Starec

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 320
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Starec
    Bonjour

    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cellule As Range
    For Each cellule In Range("B2:B18")
        cellule.NumberFormat = "dd/mm/yy;@"
    Next cellule
    Starec
    Idem, même erreur, sauf qu'elle est annoncée quand je clique sur le bouton et qu'il n'ouvre plus le débogueur

    Ca ressemble plus à ce à quoi je pensais.
    *.Har(d)t
    ---
    "Je donnerais mon bras droit pour être ambidextre"
    Brian W. Kernighan

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.NumberFormat = "dd/mm/yy;@"
    Aprés avoir sélectionner une plage de cellule.

    Où remplace sélection par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim wks As Worksheet
    Set wks = ThisWorkbook.Worksheets("Feuil1")
    wks.Range("A1:A25").NumberFormat = "dd/mm/yy;@"
    Starec

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 320
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Starec
    Re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim wks As Worksheet
    Set wks = ThisWorkbook.Worksheets("Feuil1")
    wks.Range("A1:A25").NumberFormat = "dd/mm/yy;@"
    Starec
    Bon ben ça fait fois 2 lol

    deuxième fois que ut me débloques dans la journée, très très grand merci man.
    *.Har(d)t
    ---
    "Je donnerais mon bras droit pour être ambidextre"
    Brian W. Kernighan

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

Discussions similaires

  1. Aide VBA pour recopier une cellule
    Par TITOU2911 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2011, 06h55
  2. liaison de cellules en VBA + Protection d'une cellule
    Par bodd984 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2010, 12h26
  3. Code VBA pour Copier une cellule dans un filtre?
    Par Redisdead dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/02/2009, 06h48
  4. Réponses: 3
    Dernier message: 16/10/2007, 17h25

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