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 :

explications code de format


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 105
    Par défaut explications code de format
    Bonjour,

    je crois comprendre du code suivant ( que j ai récupéré sur le forum ) qu il s'agit de mettre au format date et nombre des format textes récupérés à partir d'un formulaire ou autres
    Il s'agit plutôt d'une "fonction" ?
    Ne voulant pas copier bêtement un code, et cela pourrait peut être aider d'autre débutant comme moi mais quelqu un pourrait il m'éclairer sur cette fonction ?

    Merci par avance
    bon dimanche a tous


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function TrouveType(V)
    TrouveType = V
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 And InStr(TrouveType, ":") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd hh:mm"): Exit Function
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd"): Exit Function
    If IsNumeric(Replace(TrouveType, ".", ",")) = True Then TrouveType = Replace(TrouveType, ",", "."): Exit Function
    End Function

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

    C'est une fonction proposé par Robert ici pour valider et formater une date ou une valeur numérique.
    Il s'agit plutôt d'une "fonction" ?
    Effectivement, c'est une fonction !

    Dans la première ligne, l'argument passé à la fonction lui est affecté (pour simplifier).
    Dans la seconde ligne, si l'argument est par exemple "09/08/15 10:25" (date et heure), il sera validé par la fonction "IsDate" et formaté de cette façon "2015/08/09 10:25" (année-mois-jour heures:minutes) à condition que jour, mois et année soit séparés par des slashs et heure et minute par un double point.
    Si tu entre la valeur sous cette forme, "09-08-15 10:25", la fonction "IsDate" validera car c'est un format de date valide mais elle ne sera pas formaté par la fonction car ne possède pas les / (pas d'année en entier et pas d'inversion année-jour)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 And InStr(TrouveType, ":") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd hh:mm"): Exit Function
    Dans la troisième ligne, même que précédemment mais ne concerne que la date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If IsDate(TrouveType) = True And InStr(TrouveType, "/") <> 0 Then TrouveType = Format(TrouveType, "yyyy-mm-dd"): Exit Function
    Pour la dernière ligne, ça concerne les valeurs numériques. La fonction "IsNumeric" valide si la valeur est numérique, mais au préalable, la fonction "Replace" remplace l'éventuel point par la virgule car la fonction "IsNumeric" se base sur les paramètres régionaux (pour nous, généralement la virgule comme séparateur décimal) ensuite, la virgule est remplacée par le point qui est le séparateur décimal pour VB.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If IsNumeric(Replace(TrouveType, ".", ",")) = True Then TrouveType = Replace(TrouveType, ",", "."): Exit Function
    Hervé.

  3. #3
    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
    Oups
    pas : "formaté de cette façon "2015/08/09 10:25" (année-mois-jour heures:minutes)"
    mais : "formaté de cette façon "2015-08-09 10:25" (année-mois-jour heures:minutes)"

    Hervé.

  4. #4
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 105
    Par défaut
    Bonsoir Hervé

    merci beaucoup pour ton éclairage
    c'est effectivement plus clair et plus sympa de comprendre ce que j utilise
    bravo en tous cas pour votre dévouement sur le forum

    bonne soirée

    Bien cordialement

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Pour compléter ce qu'a dit Hervé, je dirais que trouveType n'est pas une fonction de conversion mais une fonction qui analyse le paramètre entré, pour le formater en valeur intelligible par Excel de façons univoque!

    Pour ce convaincre qu'Excel passe son temps à analyser les données saisies par l'utilisateur il suffit de saisir 1/1/15 dans un cellule et même si c'est réellement ce que l'utilisateur veut saisir!

  6. #6
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 105
    Par défaut
    merci pour ce complément d'informations
    j ai un petit soucis lors de l'execution d'un code
    où j ai un message qui me dit " Impossible d'afficher une feuille non modale lorsqu'une feuille modale est affichée "
    quelle est la signification de ce message ?

    D'avance merci

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

Discussions similaires

  1. explication code vba
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2008, 09h01
  2. explication code vba
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/04/2008, 11h12
  3. Explication sur le format .exe
    Par Janitrix dans le forum Windows XP
    Réponses: 4
    Dernier message: 04/06/2006, 13h58
  4. explication code
    Par lolothom dans le forum Access
    Réponses: 3
    Dernier message: 03/02/2006, 21h22
  5. explication code
    Par mdevlieg dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/01/2005, 09h32

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