clements42
Messages postés16Date d'inscriptionmardi 21 octobre 2008StatutMembreDernière intervention20 juillet 2011
-
24 juin 2011 à 18:24
clements42
Messages postés16Date d'inscriptionmardi 21 octobre 2008StatutMembreDernière intervention20 juillet 2011
-
24 juin 2011 à 23:33
bonjour à tous.
voici ce que je souhaite faire, en pseudo langage :
uneDate = dateActuelle - 21 jours
tant que cette date < dateActuelle
...
uneDate = unedate + 1 jour
fin tant que
Seulement, je souhaite que toutes les dates maniées soit au format mm/dd/yyyy, et je ne veux pas toucher à la config de ma machine pour passer le format de date à mm/dd/yyyy.
Voici ce que j'ai fait :
Dim test As String
test = Format(DateAdd("d", -21, Date), "mm/dd/yyyy")
While (test) <= Date
...
test = DateAdd("d", 1, test) 'incrémente la date
Wend
Malheureusement, cela ne fonctionne pas :
en effet, après création de la variable test, celle-ci vaut bien "06/03/2011", ça c'est normal
mais après l'incrémentation, au lieu de passer à 06/04/2011, cela passe à 07/03/2011. Cela s'explique du fait, je pense, que pour la machine, vu qu'elle est réglée en mode dd/mm/yyyy, quand on dit "incrémente les jours", et bien elle incrémente automatiquement les premières valeurs de la date (sans chercher à savoir s'il s'agit de jours ou de mois)... je ne sais pas si je suis très clair.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 juin 2011 à 20:39
Salut
Quelle la langue du Windows ?
Quel est le format du système ?
Si tu dois afficher des dates dans un format autre que celui de l'OS :
- Fais tous tes calculs avec des variables de type Date (pas String), exprimées au format de l'OS - comme ça les fonctions DateAdd et DateDiff fonctionneront
- Fais la conversion du format d'affichage au moment où tu en as besoin mais ne travaille pas avec un format date différent du système.
Ceci impose que tu aies :
- une variable de travail de type Date, celle avec laquelle tu vas faire tes calculs de date,
- et une variable de type String qui représentera ta date au format souhaité et qui utilisera la première variable dans une fonction Format, par exemple.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 24 juin 2011 à 22:30
Bonjour,iment certain d'avoir bien compris (une fois de plus) les tenants et aboutissants.
Je propose donc ceci, à tout hasard :
Dim test As Date
test = DateSerial(Year(Date), Month(Date), Day(Date) - 21)
MsgBox test
While test <= Date
test = DateSerial(Year(test), Month(test), Day(test) + 1)
Wend
MsgBox Format(test, "mm/dd/yyyy")
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est