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 :

convertir date en valeur numérique


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    réseaux électriques
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : réseaux électriques

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut convertir date en valeur numérique
    la date (JJ/MM/AAAA) est issue d'une inputbox (donc en string) et je cherche à la convertir en chiffre (ex : 31/08/2009 = 40056)

    J'ai essayé en passant par une cellule et en changeant le format de la cellule... mais ca marche pas!!
    J'ai essayé Clng, CStr...

    Je suis dans la panade,

    Merci de votre aide

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    As tu regardé cette page, notament a partie extraire les valeures numérique d'une chaine de caractère:
    http://silkyroad.developpez.com/VBA/...nesCaracteres/

  3. #3
    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
    Ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If IsDate(TextBox1) Then 
      Range("A1") = CDate(TextBox1)
      Range("A1").NumberFormat = "General"
    End If

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    SI tu veux disposer de l'info dans une variable Date, si strValeur est la chaîne de car correspondante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maDte = cDate(strValeur)
    Pour calculer le numéro du jour correspondant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumJour = cLng(cDate(strValeur))
    Cordialement,

    PGZ

  5. #5
    Membre averti
    Homme Profil pro
    réseaux électriques
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : réseaux électriques

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Citation Envoyé par pgz Voir le message
    Pour calculer le numéro du jour correspondant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumJour = cLng(cDate(strValeur))
    Merci beaucoup, en une ligne ca a répondu à ce que je recherchais!!!

  6. #6
    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
    Tu supposes que l'utilisateur va TOUJOURS entrer une date!

  7. #7
    Membre averti
    Homme Profil pro
    réseaux électriques
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : réseaux électriques

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Citation Envoyé par mercatog Voir le message
    Tu supposes que l'utilisateur va TOUJOURS entrer une date!
    J'ai créer un système de gestion des erreurs :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Dim Journee As String
    Dim J As Long
    Dim ValeurDefault As String
    line1:
    ValeurDefault = Date
     
    Journee = InputBox("Quelle date vous cherchez?" & Chr(10) & Chr(10) & "format JJ/MM/AAAA", "Recherche journée", ValeurDefault)
     
    'gestion des éventuels erreurs
        'si pas de valeurs de rentrée ou cliqué sur annuler
        If Journee = "" Then Exit Sub
     
        'si message d'erreur, renvoi vers line3
        On Error GoTo line3
     
    'si pas d'erreur saut de la gestion de l'erreur
    GoTo line2
     
    'affiche le format à renseigner et retour début fonction
    line3:
    MsgBox ("Format reglémenté JJ/MM/AAAA"): GoTo line1
     
    line2:
    'Converti la date dans la var "journee" en chiffre dans la var "J"
    J = CLng(CDate(Journee))
     
    end sub
    Voili voilà

    Si tu vois des erreurs qui peuvent survenir que je n'ai pas traitées.. je suis preneur

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    essaye de te tromper deux fois et tu verra
    ensuite tu devrais essayer de structurer ton code on monte on descend on saute des lignes c'est assez ilisible, je pleind la personne (sans doute toi) qui lira ce genre de code dans quelque mois.

    en utilisant un code structuré (c'est a dire sans goto juste pour la gestion d'erreur)
    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
    18
    19
    20
    21
    Dim Journee As String
    Dim J As Long
    Dim ValeurDefault As String
    ValeurDefault = Date
    ligne1::
    Journee = InputBox("Quelle date vous cherchez?" & Chr(10) & Chr(10) & "format JJ/MM/AAAA", "Recherche journée", ValeurDefault)
    'gestion des éventuels erreurs
    'si pas de valeurs de rentrée ou cliqué sur annuler
    If Journee = "" Then Exit Sub
    'si message d'erreur, renvoi vers line3
    On Error GoTo gestionerreur
    'Converti la date dans la var "journee" en chiffre dans la var "J"
    J = CLng(CDate(Journee))
     
    'c'est plus élégant de faire une gestion d'erreur en bas de procédure
    exit sub
    gestionerreur::
    MsgBox ("Format reglémenté JJ/MM/AAAA")
    err.clear
    goto ligne1
    end sub


    sans se prendre la tete avec la gestion d'erreur quelque chose dans ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub dd()
    Dim Journee As String
    Dim J As Long
    Dim ValeurDefault As String
    ValeurDefault = Date
    Do
    Journee = InputBox("Quelle date vous cherchez?" & Chr(10) & Chr(10) & "format JJ/MM/AAAA", "Recherche journée", ValeurDefault)
    Loop Until Journee = "" Or IsDate(Journee)
    If IsDate(Journee) Then
        J = CLng(CDate(Journee))
    End If
    End Sub

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/07/2010, 13h47
  2. Convertir les noms de constantes Excel en valeurs numériques
    Par Martin_77 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/07/2008, 09h12
  3. Réponses: 3
    Dernier message: 15/08/2007, 14h52
  4. [TAG] Convertir une valeur numérique en hh:mm:ss
    Par Rafiki dans le forum Taglibs
    Réponses: 6
    Dernier message: 09/06/2006, 13h21

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