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

VBScript Discussion :

Conversion Format de Date


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'automation Graphique
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'automation Graphique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Conversion Format de Date
    Bonjour,

    J'ai une date sous le format : MM/JJ/AAAA HH:MM:SS (exemple: 12/6/2012 8:20:00)

    Hors je voudrais l'avoir sous le format : JJ/MM/AAAA (exemple: 06/12/2012)

    Le problème est que le programme que j'utilise convertit tout seul la date sous le format que je désire sauf quand bien évidement il arrive pas à définir quel est le mois et quel est le jour (comme dans mon exemple)

    Je m'explique :

    pour une date que je reçois : 12/13/2012 8:20:00
    quand je lui demande de la mettre sous mon format, il le fait très bien car il détecte que le 13 étant plus grand que 12, il le définit comme jour et prend l'autre comme mois donc : 13/12/2012

    MAIS
    pour une date tel que : 06/12/2012 8:20:00
    Quand je lui demande sous mon format, C'est la que il me met : 12/06/2012

    J'aurais voulu savoir si quelqu'un avait une solution ou connait une fonction qui permettrait d'arranger ce problème ?

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,
    MAIS
    pour une date tel que : 06/12/2012 8:20:00
    Quand je lui demande sous mon format, C'est la que il me met : 12/06/2012
    heu... ta routine fait très exactement ce que tu lui demandes...
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'automation Graphique
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'automation Graphique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    non en fait je me suis vraiment mal exprimé ...

    En gros je recois des dates sous format : MM/DD/YYYY alors que le programme croit les recevoir sous le format : DD/MM/YYYY !!!

    Tout va très bien tant que mes DD sont supérieurs à 12 il corrige l'erreur lui même.
    Mais dès que j'ai une date avec un DD inférieur à 12, il ne fait pas le changement.

    Exemple :
    DATE 1 reçu : 12/14/2012 (format: MM/DD/YYYY)
    DATE 1 convertit par le programme : 14/12/2012 (format: DD/MM/YYYY)

    DATE 2 reçu : 12/6/2012 (format: MM/DD/YYYY)
    DATE 2 convertit par le programme : 12/06/2012 (formatD/MM/YYYY selon le programme)

    Mais je pense avoir trouver un solution :

    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
    Sub Main()
     
    Set FullDate = Producer.Model.GetObject("D3")
    FDate = FullDate.GetProperty("Text")
    FF = Mid(FDate,4,2)
    FDate = CDate (FDate)
    FDate = FormatDateTime (FDate,2)
     
    If FF > 12 Then
    Call Producer.Model.GetObject("Datetest").SetProperty("Text",FDate)
     
    Else
    DD = Mid(FDate,4,2)
    MM = Left(FDate,2)
    YYYY = Mid(FDate,7,4)
    Call Producer.Model.GetObject("DateTest").SetProperty("Text",DD+"/"+MM+"/"+YYYY)
     
    End If
    End Sub
    Cela semble bien tourner

    Mais j'aimerais pouvoir le reutiliser plusieurs fois sans devoir faire un copier coller en changeant le nom de l'objet de départ et de fin ...

    en gros l'utiliser comme fonction pourriez vous m'aider?
    Si vous m'avez compris maintenant ^^

  4. #4
    Membre à l'essai
    Homme Profil pro
    Chargé d'automation Graphique
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'automation Graphique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Est ce que quelqu'une connait une fonction pour savoir si un caractère est un chiffre?

    J'ai essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If X = VbInteger Then ...
    Mais ca n'a pas l'air de fonctionner ...

  5. #5
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Citation Envoyé par Quentin.vdv Voir le message
    Est ce que quelqu'une connait une fonction pour savoir si un caractère est un chiffre?

    J'ai essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If X = VbInteger Then ...
    Mais ca n'a pas l'air de fonctionner ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if isNumeric(MaVariable) then
    .....

  6. #6
    Membre à l'essai
    Homme Profil pro
    Chargé d'automation Graphique
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'automation Graphique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Merci pc75

  7. #7
    Membre à l'essai
    Homme Profil pro
    Chargé d'automation Graphique
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'automation Graphique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Je reviens encore vers vous avec ma demande:

    vu que mes script sont reliés chaque fois à une case bien précise, est ce qu'il serait possible de ne plus devoir lui mettre a chaque fois le nom de l'objet de départ et de fin (étant donné que c'est le même) ?

    En gros j'aimerais retranscire mon script de facon que je ne dois pas pour chaque donnée changer le DATE1 en DATE2 etc (dans le script même).

    Comme il est a chaque fois relié a une case spécifique, je voudrais juste trouver la commande qui fait qu'il va lire tout seul à la case auquel il est rélié.

    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
    Sub Main()
     
    Set FullDate = Producer.Model.GetObject("DATE1")
    FDate = FullDate.GetProperty("Text")
    FF = Mid(FDate,4,2)
    FDate = CDate (FDate)
    FDate = FormatDateTime (FDate,2)
     
    If FF > 12 Then
    Call Producer.Model.GetObject("DATE1").SetProperty("Text",FDate)
     
    Else
    DD = Mid(FDate,4,2)
    MM = Left(FDate,2)
    YYYY = Mid(FDate,7,4)
    Call Producer.Model.GetObject("DATE1").SetProperty("Text",DD+"/"+MM+"/"+YYYY)
     
    End If
    End Sub

Discussions similaires

  1. conversion format de date
    Par rockk dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/03/2008, 10h28
  2. Conversion format de date
    Par ZIED dans le forum Langage
    Réponses: 1
    Dernier message: 01/11/2007, 22h42
  3. conversion format de date
    Par norac dans le forum Excel
    Réponses: 9
    Dernier message: 27/09/2007, 13h28
  4. 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