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 :

Changement du format d'une date


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2013
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 81
    Par défaut Changement du format d'une date
    Bonjour,

    Je ne pense pas que mon problème soit très difficile à résoudre, mais tout ce que j'ai tenté n'a pas marché jusqu'ici...

    Je dois récupérer une date que quelqu'un inscrit sur une feuille excel en format AAAAMMJJ que je voulais convertir en format JJMMAA.
    J'ai créée pour cela une macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    année = Mid(Cells(15, 6), 3, 2)
    mois = Mid(Cells(15, 6), 5, 2)
    jour = Mid(Cells(15, 6), 7, 2)
     
    Dates = Format(DateSerial(année, mois, jour), "ddmmyy")
    Cela marchait très bien... jusqu'à aujourd'hui. Pour le 01082013, excel ne reconnait pas le 0 devant, et Dates prend la valeur 108213.
    J'ai essayé d'utiliser la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jour = Format(jour, String(2, "0")
    , mais ça ne marche pas non plus.

    Quelqu'un pourrait-il m'aider ?

    je vous remercie par avance,
    Novice_vba

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Je dois récupérer une date que quelqu'un inscrit sur une feuille excel en format AAAAMMJJ
    Dans cette cellule, tu as une date formatée en aaaammjj ou du texte?

    Si tu change le format de cette cellule, qu'est ce que tu obtiens?

    Dans ton code pourquoi Mid(xxx,3,2) pour récupérer aaaa à partir de aaaammjj?

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2013
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 81
    Par défaut
    Bonjour mercatog,

    Dans ma cellule, j'ai une date seulement.
    En changeant le format de me cellule manuellement avec la fonction Texte(cellule,"0"), j'obtiens exactement la même chose. (à savoir Dates=10813 et non 010813 comme je voudrais)

    Je cherche à la fin à obtenir une date sous la forme jjmmaa, donc je ne veux récupérer que aa (d'où mon mid(xxx,3,2)).
    A la relecture, ma phrase était peut-être ambigue, effectivement. Quelqu'un inscrit une date sous le format aaaammjj et moi je voudrais l'utiliser sous le format jjmmaa,

    Pourrais-tu éventuellement m'aider ?

    Novice_vba

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Non sans passer par la fonction Texte(), mais uniquement changer le format de la cellule en date (ou éventuellement en Standard).

    Le cas échéant, joins un extrait de ton fichier.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Si tu veux avoir toujours 2 caractères, tu dois les mettre explicitement dans ta fonction TEXTE

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaValeur = Format(MaValeur, "00")

  6. #6
    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
    Bonjour,

    Tout simple (à adapter):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
      Dim strDate As String
      strDate = Format([A1], "0000/00/00")
      [B1].NumberFormat = "ddmmyy"
      [B1] = CDate(strDate)
    End Sub
    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!

  7. #7
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim TxtDate As String
    TxtDate = fromat(Cells(15, 6), "00000000")
    année = Mid(TxtDate, 3, 2)
    mois = Mid(TxtDate, 5, 2)
    jour = Mid(TxtDate, 7, 2)
     
    Dates = Format(DateSerial(année, mois, jour), "ddmmyy")

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2013
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 81
    Par défaut
    Merci beaucoup à tout le monde !

    Je maîtrise bien mieux les formats à présent, et j'ai pu résoudre mon problème

  9. #9
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut changement du format date
    bonjour,

    Cette discussion est résolu et j'en suis ravi pour toi.

    Peux tu mettre le code final que tu as retenu car pour ma part je n'ai toujours rien compris.

    Pour une meilleure compréhension, merci de préciser exactement :
    a -la donnée de départ 20130801 ou 2013/08/01
    b -le résultat souhaité 010813 ou 01/08/13
    car avec aucune des réponses apportées je n'obtiens le résultat escompté.

    avec le code Alain Tech on obtient uniquement le résultat avec la cas de figure donnée 20130801 résultat 010813.

    avec celui de Rdurupt aucun résultat quelque soit le cas de figure.

    pour info je suis version 2010.

    cordialement.

  10. #10
    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
    nible:
    1- Oui
    2- problème en ligne 2, fromat->format

  11. #11
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut changement du format date
    bonjour Engue Engue,

    j'avais préalablement corrigé fromat pour mon essai. avec le résultat indiqué dans ma précédente intervention.

    le problème de date est étrange.

    dans une autre discussion sur une soustraction de dates, le code échouait sur la version 2003 du questionneur alors qu'il fonctionnait très bien sur ma version 2010.

    cordialement.

  12. #12
    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
    Si les variables sont bien déclarées comme des dates et qu'excel les reconnaît correctement il ne devrait pas y avoir de problèmes sur 2003, mais tu sais bien qu'excel n'est pas infaillible et qu'il faut des fois faire une réinstallation!

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

Discussions similaires

  1. Changement du format d'une colonne "date" dans un gridview
    Par sprvnxlgls dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/12/2009, 11h11
  2. [VB.net] Verifier le format d'une Date
    Par Seth77 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/11/2006, 13h21
  3. Encore un problème sur le format d'une date!
    Par bygui dans le forum Langage
    Réponses: 1
    Dernier message: 26/06/2006, 08h41
  4. commant changer le format d'une date?
    Par tribaleur dans le forum ASP
    Réponses: 5
    Dernier message: 02/06/2006, 07h55
  5. [C#] Serveur anglais : format d'une date
    Par FoxDeltaSierra dans le forum ASP.NET
    Réponses: 5
    Dernier message: 18/01/2006, 16h21

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