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 :

Erreur Format Date VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 22
    Points
    22
    Par défaut Erreur Format Date VBA
    Bonjour à tous,

    J'ai un soucis d'affichage de format pour une date dans ma macro et je ne comprend pas pourquoi.

    Voisi le code que j'utilise:
    Nom : Capture.PNG
Affichages : 1094
Taille : 1,5 Ko

    AsOf vaut ici 42489

    Cependant voici ce qui est affiché dans la cellule:
    Nom : Capture.PNG
Affichages : 1103
Taille : 537 octets

    Au lieu de:
    Nom : Capture.PNG
Affichages : 1096
Taille : 556 octets

    Merci par avance de votre aide,
    Rainmax

  2. #2
    Membre averti Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Points : 394
    Points
    394
    Par défaut
    Tu peux utiliser ce code mais y'a mieux, ou tout simplement modifier le format de la cellule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("O2").NumberFormat = "[$-40C]mmmm-yy;@"

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 667
    Points : 1 432
    Points
    1 432
    Par défaut
    Bonjour,

    Pourquoi modifies-tu le format en VBA plutôt que d'utiliser le format de cellules sous Excel?
    Comment est configuré le format de cellule de ta case de sortie?

    => Si tu veux que ça marche tel que tu l'as fait, il faut probablement appliquer un format de cellule "texte" mais la bonne solution serait plutôt de ne pas toucher au format sous VBA et d'appliquer le bon format de date sous Excel.

  4. #4
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut
    met :

    et change le format directement dans la cellule ou applique le directement à la colonne en question c'est mieux car effectivement , j'ai eu le même probleme que toi dans un projet , sinon tu met en string mais c'est pas propre du tout .

    tout autre solution serait du bidouillage, la fonction format a ses limites.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Le soucis c'est que nous faisons des reportings mensuel de manière automatique et nous souhaitons qu'il n'y ait aucun retraitement manuel aprés le déroulement de la macro.

    @Kiouane: Merci pour ta proposition mais cela m'affiche: "avr.-16" dans la cellule au lieu de "Avr-16"

    Merci pour vos retours et vos conseils mais le problème persiste :/

    Rainmax.

  6. #6
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut
    Ca ne demande pas de retraitement manuel, ca te demande de le faire une fois pour toute tu prend ta colonne et tu change le format de date c'est tt apres c'est fait

    Ou dans ta macro tu mets en format string


  7. #7
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 667
    Points : 1 432
    Points
    1 432
    Par défaut
    Effectivement, pas besoin de traitement manuel répétitif: tu configures manuellement ton template Excel une bonne fois pour toutes au début et tu le sauvegardes ou bien tu modifies à chaud le format de cellule par macro (le premier cas étant le plus simple et le plus facile à maintenir).

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub test()
    MyDate Date, Range("A1")
    End Sub
    Sub MyDate( D, ByRef C)
    Asof = Format(CDate(D), "mmm-yy")
    C.NumberFormat = "general"
    C.Value = UCase(Left(Asof, 1)) & LCase(Right(Asof, Len(Asof) - 1))
    End Sub

  9. #9
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub Ecrire_date()
     
    asof = 42469
     
    'Ecrire une valeur numerique pour éviter les problèmes d'inversion Jour/Mois
    Range("O2").Value = CDbl(asof)
     
    'La cellule contient une valeur de type  numérique (Double)
    Range("O3") = TypeName(Range("O2").Value)
     
    'Mettre la cellule au format date désiré
    Range("O2").NumberFormat = "mmm-yy"
     
    'La cellule contient une valeur de type Date
    Range("O3") = TypeName(Range("O2").Value)
     
    End Sub

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/07/2012, 16h19
  2. [XL-2007] Format Date VBA et Excel
    Par puledad1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/12/2011, 18h02
  3. Erreur format Date dans MySql
    Par stefan73 dans le forum JDBC
    Réponses: 7
    Dernier message: 04/07/2011, 19h22
  4. Group By Format([DATE]) VBA - SQL
    Par Bastien06 dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/03/2010, 16h53
  5. code d'erreur format date
    Par laurent.w dans le forum Access
    Réponses: 1
    Dernier message: 05/01/2007, 18h15

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