Précédent   Forum du club des développeurs et IT Pro > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/11/2012, 12h52   #1
Quentin.vdv
Invité de passage
 
Homme Quentin Vanderveken
Chargé d'automation Graphique
Inscription : octobre 2012
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Quentin Vanderveken
Localisation : Belgique

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

Informations forums :
Inscription : octobre 2012
Messages : 14
Points : 3
Points : 3
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 ?
Quentin.vdv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 17h07   #2
omen999
Rédacteur
 
Avatar de omen999
 
Inscription : février 2006
Messages : 911
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 911
Points : 2 211
Points : 2 211
bonjour,
Citation:
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
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
omen999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 17h40   #3
Quentin.vdv
Invité de passage
 
Homme Quentin Vanderveken
Chargé d'automation Graphique
Inscription : octobre 2012
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Quentin Vanderveken
Localisation : Belgique

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

Informations forums :
Inscription : octobre 2012
Messages : 14
Points : 3
Points : 3
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 :
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 ^^
Quentin.vdv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 13h04   #4
Quentin.vdv
Invité de passage
 
Homme Quentin Vanderveken
Chargé d'automation Graphique
Inscription : octobre 2012
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Quentin Vanderveken
Localisation : Belgique

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

Informations forums :
Inscription : octobre 2012
Messages : 14
Points : 3
Points : 3
Est ce que quelqu'une connait une fonction pour savoir si un caractère est un chiffre?

J'ai essaye

Code :
If X = VbInteger Then ...
Mais ca n'a pas l'air de fonctionner ...
Quentin.vdv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 13h23   #5
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 143
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 143
Points : 3 319
Points : 3 319
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 :
If X = VbInteger Then ...
Mais ca n'a pas l'air de fonctionner ...
Code :
1
2
3
 
if isNumeric(MaVariable) then
.....
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 14h22   #6
Quentin.vdv
Invité de passage
 
Homme Quentin Vanderveken
Chargé d'automation Graphique
Inscription : octobre 2012
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Quentin Vanderveken
Localisation : Belgique

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

Informations forums :
Inscription : octobre 2012
Messages : 14
Points : 3
Points : 3
Merci pc75
Quentin.vdv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2013, 17h45   #7
Quentin.vdv
Invité de passage
 
Homme Quentin Vanderveken
Chargé d'automation Graphique
Inscription : octobre 2012
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Quentin Vanderveken
Localisation : Belgique

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

Informations forums :
Inscription : octobre 2012
Messages : 14
Points : 3
Points : 3
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 :
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
Quentin.vdv est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h13.


 
 
 
 
Partenaires

Hébergement Web