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 :

Problème de date


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut Problème de date
    re-bonjour,

    j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Worksheets(feuille).Cells(lig, col).NumberFormat = "m/d/yyyy"
    Worksheets(feuille).Cells(lig, col).Value = cel
    où cel est une variable contenant une date sous la forme "aaaammjj".

    j'obtiens ######### dans ma cellule, donc ca ne marche pas, le format de ma variable date est-il mauvais ?

    Merci d'avance

  2. #2
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour,

    essais



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(feuille).Cells(lig, col).Value = Format(cel, "m/d/yyyy")

  3. #3
    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
    élargit d'abord ta colonne pour voir ce qu'il y a dedans
    A+

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    J'ai peut-être posté un peu vide,

    après quelques recherche, je pense qu'il faut que ma variable ai le format "jj/mm/aaaa'

    Il faut donc que je transforme ma chaine "aaaammjj" en "jj/mm/aaaa", si vous pouviez m'aider, je ne connais pas encore les fonction de chaine, je débute en VB.

    Merci

  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
    Regarde la réponse de JeanPierre et inspire-t-en
    N'oublie pas que si tu parles VBA, tu parles anglais "dd/mm/yyyy"

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    La réponse de jean-pierre ne résolvais pas mon problème, en fait j'ai trouvé, c'est bien le format de ma variable cel qui doit être de la forme "jjmmaaaa" pour être reconnu comme une date par excel.

    J'ai effectué la transformation suivante et ca marche :

    cel contient au départ une date de la forme "aaaammjj"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cel = Right(cel, 2) + "/" + Mid(cel, 5, 2) + "/" + Left(cel, 4)
    Worksheets(feuille).Cells(lig, col).NumberFormat = "[$-40C]d mmmm yyyy;@"
    Worksheets(feuille).Cells(lig, col).Value = cel
    Dans cet exemple j'ai changé le format de sortie.

    Merci de votre aide et désolé d'avoir posté un peu vite, je chercherais un peu plus la prochaine fois avant de poster

  7. #7
    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
    Edit
    Je viens de voir ce que tu as et ce que tu veux écrire, alors c'est "un peu" différent... Ce que tu as n'est pas une date mais un string.
    on doit arriver à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cel = Format(DateSerial(Annee, mois, jour), "dd/mm/yyyy")
    il faut donc découper ton string en Annee, mois et jour. Ce qui devrait donner quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Cel = Worksheets(feuille).Cells(lig, col).formula
    Annee = Left(cel,4)
    mois = Mid(Cel, 5,2)
    jour = right(Cel,2)
    Cel = Format(DateSerial(Annee, mois, jour), "dd/mm/yyyy")
    Worksheets(feuille).Cells(lig, col).Value = cel

  8. #8
    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
    su toutes tes données sont au format aaammjj tu peu faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Donnée = "20071217"
    Variable = right(Donnée,2) & "/" & mid(Donnée,5,2) & "/" & left(Donnée,4)
    A+
    edit:
    Bouuuuuuut ça va trop vite
    Edit2:
    Evite d'employé des '+' ça risque de poser des problèmes dans certain cas, emploi plutôt '&'

  9. #9
    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
    Hello Leforestier, tu n'as pas peur qu'Excel prenne ça pour un string ?
    C'est une question vraie. En passant par deteserial, je pense, enfin je suppose que l'ambiguïté est levée... mais peut-être me trompe-je

  10. #10
    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 Ousk
    A ma connaissance, dans excel toute les dates sont des string formaté.
    pour l'exploité ça dépend de la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim a As String
    'A1 = 17/12/2007
    a = Cells(1, 1) 'renvoi > "17/12/2007"
    dim b
    b = Cells(1, 1) 'renvoi > 17/12/2007

    A+

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

Discussions similaires

  1. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 16h34
  2. problème de date
    Par baboune dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 10/06/2004, 11h52
  3. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 12h21
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 16h05
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 19h22

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