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 :

Format des dates a l'envers


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Par défaut Format des dates a l'envers
    Bonjour,

    Tout d'abord un grand merci, j'ai tendance a poser pas mal de question, et vous avez toujours des réponses a m'apporter.



    Une macro va récupérer dans un fichier excel, une date dont le format est le suivant JJ.MM.AAA.
    Je mets en forme pour remplacer les points par des slashs JJ/MM/AAAA
    Lorsque le jour de la date est comprise entre le 1er et le 9 du mois, ma mise en forme inverse le jour et le mois ce qui me donne MM/JJ/AAAA, par contre si le jour est entre le 10 et le 31 pas de souci.
    Ex : 04.09.2007 devient 09/04/2007



    Voici donc 2 scripts pour essayer de détourner le pb, mais qui ne l’ont finalement pas résolus
    Exemple avec dans la cellule chell (« A1 ») 04.09.2007

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ‘ici Je fais un simple remplace . par /
    Sub test ()
    Dim chell as range
    Set chell = Range("a1")
    chell. Replace what:=".", Replacement:="/" 
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     ‘ici je récupère uniquement le JJ MM et AAAA sans les points 
    Sub essai () 
    Dim boite As String
    Dim chell as range
    Set chell = Range("a1")
     
        boite = chell
        boite = Left(boite, 2) & "/" & Left(Right(boite, 7), 2) & "/" & Right(boite, 4)
        chell = boite ‘ le format c’est inversé
    End sub
    Je vais essayé une autre variante, mais j'ai peu d'espoir.

    Encore pour votre aide

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    essai comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    boite = datevalue(Left(boite, 2) & "/" & Left(Right(boite, 7), 2) & "/" & Right(boite, 4))
    datevalue utilisant le format date des paramètres régionnaux (si je ne me trompe)

  3. #3
    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
    Citation Envoyé par Djohn
    Une macro va récupérer dans un fichier excel, une date dont le format est le suivant JJ.MM.AAA.
    Je mets en forme pour remplacer les points par des slashs JJ/MM/AAAA
    Quand tu as fait ça, teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LaDate = "25/07:2007" 'par exemple
    NewDate = Format(Val(cdate(LaDate)),"dd/mm/yyyy")
    Tu dis mais il y as certainement une solution

  4. #4
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    Ma technique pour les dates :

    remplacement des "." par "/"
    mise au format date
    Changement du format de la cellule

    ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub essai_bis()
    Dim boite As String
    Dim chell As Range
    Set chell = Range("a1")
        boite = Replace(chell.Value, ".", "/")  'remplacement des "." par "/"
        chell = CDate(boite)  'mise au format date
        chell.NumberFormat = "DD/MM/YYYY" 'Changement du format de la cellule
    End Sub

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    et ma technique...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Essai3
    Dim T, d
        Sheets("Feuil1").Activate
        T = Split(Range("A1").Text, ".", -1)
        Range("B1").Value = DateSerial(T(2), T(1), T(0))
    End Sub
    A+

  6. #6
    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
    Citation Envoyé par LeForestier Voir le message
    Bonjour,
    et ma technique...[/CODE]
    Je pense comme toi, en désespoir de cause. On est certain qu'elle fonctionne.
    Djohn, tu peux peut-être aussi jeter un oeil ici, il y a quelques idées... dont celle de LeForestier si les autres ne fonctionnent pas

  7. #7
    Membre éclairé Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Par défaut
    un grand merci


    jfontaine : le datevalue n'a pas fonctionné, pourtant les options régionales sont biens en français(France)


    ouskel'n'or : n'a pas non plus fonctionné, la date est changée à l'année 1900 lol, par contre je ne connaissais l'instruction "val" ca va mettre utile pour la prochaine fois

    mordrhim : top ca a fonctionné, la date est au format espérée,

    LeForestier : je n'ai pas encore tester ta technique, mais je m'y empresse.

    Merci à tous

  8. #8
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    pour info au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Left(Right(boite, 7), 2)
    tu peux faire

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

Discussions similaires

  1. Format des dates pour acces à une BD MS Access..
    Par hagler dans le forum Bases de données
    Réponses: 10
    Dernier message: 03/10/2005, 18h16
  2. [Debutant] Format des dates ?
    Par Invité dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 14h55
  3. [VBA] Pb de format des dates dans un état
    Par linda15975 dans le forum IHM
    Réponses: 45
    Dernier message: 21/06/2005, 14h49
  4. Format des dates
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 03/05/2005, 11h03
  5. [C#] Format des dates pour une ComboBox...
    Par frechy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/01/2005, 17h08

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