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 :

Conversion au format Date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 36
    Par défaut Conversion au format Date
    Bonjour,

    Savez-vous comment je peux convertir au format Date le résultat de la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Function Date_echeance(Range1 As Range, Range2 As Range)
        Date_echeance = "30/Range1/Range2"
    End Function
    Ou Range1 donnera le numéro du mois (1, 2, 3, ...) et Range2 l'année (2013, 2014, ...)

    Merci !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date_echeance =  DateValue(jour & "/" & Range1 & "/" & Range2)

  3. #3
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour,

    Dim LaDate As Date
    LaDate = DateValue(Date_echeance)





    Et ben vraiment trop tard ..........

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 36
    Par défaut
    Alors j'ai remplacé et ça me renvoie une erreur : "Incompatibilité de type" :s

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Et si tu remplaces les "/" par des "-" ?

    Ou bien, si tu as juste des données numériques, tu peux jeter un œil sur DateSerial() dans ton aide. Tu vas récupérer la date sous son équivalent numérique.

    de mémoire cela donnerait quelque chose comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ladate as integer
    ladate = DateSerial(Range2.value;Range1.value;30)

  6. #6
    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 conversion au format date
    bonsoir,

    cela semble fonctionner, que les cellules A1 et A2 soient au format texte ou number.
    Par contre, il faut que la cellule A3 dans laquelle est renvoyée le résultat soit au format "standard" pour que la conversion se fasse.
    La même exigence se pose au demeurant lorsque l'on écrit une date directement dans la feuille. Si la cellule est initialement au format texte, elle le reste alors qu'elle se convertie si elle est standard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub data1()
        Date_echeance Range("a1"), Range("a2")
    End Sub
     
    Function Date_echeance(range1 As Range, range2 As Range)
        Date_echeance = CDate("30" & "/" & range1 & "/" & range2)
        Cells(3, 1) = Date_echeance
    End Function
     
    Cordialement,

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub test()
     
        'A1 = le mois, A2 = l'année
        MsgBox Date_echeance(Range("A1"), Range("A2"))
     
    End Sub
     
    Function Date_echeance(Range1 As Range, Range2 As Range) As Date
     
        Date_echeance = DateSerial(Range2, Range1, 30)
     
    End Function
    Hervé.

  8. #8
    Invité
    Invité(e)
    Par défaut Bonjour,
    je ne sais pas si c'est l'age qui me joue un tour, mais j'ai l'impression que tes question sont redondantes.

    dans un de tes dernier poste il était question de formater une date en "mm-yy" maintenant "dd/mm/yyyy".

    si je me rappel, mais maintenant j'en doute, je t'avais expliqué que tu pouvais formater toutes tes données directement dans ta requête et j’avais rédigé un min tuto sur les script sql.

    pare exemple:
    Code Script SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select [myAnnée] & '-' & [MyMois] & '-30 00:00:00'
    ici au format international, mai je doute que le mois de février apprécie.
    je t'ai dit sans un peut d’humours, qu'il y avait un problème culturel entre VBA et Excel et j'avait pris en exemple le 4 janvier.

    que dire de plus sauf réitérer les conseil déjà prodigués!

    si si... les fonction sont comme des variables elles ont un type, par défaut variant si tu place une date dans un variant Excel devra trouver le meilleur type de conversion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim D as variant
    d=cdate("04/01/2013")
    [A1]=d
    dim c as date
    c=[A1]
    debeug.print  'donnera "01/04/2013"
    en revanche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim D as date
    d=cdate("04/01/2013")
    [A1]=d
    dim c as date
    c=[A1]
    debeug.print c 'donnera "04/01/2013"

    Citation Envoyé par DarkCator Voir le message
    Bonjour,

    Savez-vous comment je peux convertir au format Date le résultat de la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Function Date_echeance(Range1 As Range, Range2 As Range)
        Date_echeance = "30/Range1/Range2"
    End Function
    Ou Range1 donnera le numéro du mois (1, 2, 3, ...) et Range2 l'année (2013, 2014, ...)

    Merci !
    les fonction on pour objet de factoriser un cernait nombre d'instructions, si l'appel de la fonction est aussi long à écrire que le code de la fonction, la fonction n'est pas intéressante.

    nous somme tous des bénévoles, et passons beaucoup de temps à prodiguer nos conseils à des "novices". il ne faudrait pas attendre de nous des solution toutes cuitent dans la bouche sans faire au minium un travail de compréhension. ce n'est pas gratuit tu devra renvoyer ascenseurs à d'autre novices.

    ne gâche ce temps qui serait utile à d'autre.

  9. #9
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par rdurupt Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    debeug.print  'donnera "01/04/2013"
     
    debeug.print c 'donnera "04/01/2013"
    Tu es sur que cela va afficher tes dates ?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Tu es sur que cela va afficher tes dates ?
    effectivement j'ai oublié la variable C dans un des 2 cas
    Dernière modification par Invité ; 22/12/2013 à 21h53.

Discussions similaires

  1. Conversion de format date en format semaine
    Par issouma dans le forum Webi
    Réponses: 1
    Dernier message: 13/07/2011, 16h33
  2. probleme trivial de conversion au format date
    Par guevel dans le forum DB2
    Réponses: 2
    Dernier message: 03/03/2009, 11h04
  3. [MySQL] SQL conversion de format date
    Par lololoic dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/08/2008, 14h05
  4. Conversion de format date entre excel et python
    Par uldrych.maillet dans le forum Général Python
    Réponses: 2
    Dernier message: 20/02/2008, 11h02
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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