Bonjour,
Les dates non américaines et VBA sont source de casse-tête pour
beaucoup de monde. Une des solutions les plus sécures, mais qui est
moins confortable au niveau de la saisie, est de saisir séparément
le mois, le jour et l'année, et de récupérer le numéro d'ordre de la
date avec la fonction Dateserial(aaaa,mm,jj), au lieu de saisir une
date d'un seul tenant.
Il y a assez longtemps de cela, il y avait eu un assez long fil sur la
"sécurité" de la saisie des dates. Il s'est avéré que même les tests
avec Cdate() et Format() n'étaient pas fiables à 100 %. Même si, en
principe, Cdate() retourne une date selon les paramètres régionaux, il
y avait des risques d'erreurs si la date n'était pas saisie avec 4
chiffres.
Post by DomiSympa ! Encore un problème !!!
Bon, je suppose qu'il va falloir faire apparaître quelque part la notion de
format. Tu as la soluce ? Sinon je chercherai demain...
De toute façon je m'initie aux userform, je me lance avec un gros projet
donc je crois que pour les pb je n'en suis qu'au début...
Merci beaucoup
Domi
Post by DomiBonjour,
En essayant quelque chose pour ton autre question, j'ai constaté que
Isdate() seul tisse les mailles du filet trop larges.
Si on entre une "date américaine" du genre 3-28-2005 (28 mars 2005 aux
États), cela passe isdate() comme du beurre dans la poêle.
Post by DomiOn sent là une approche beaucoup plus pro ;o)
Je vais essayer de disséquer tout cela.
Merci beaucoup
Domi
message
Post by DomiPost by DomiBonjour,
Personnellement, dans ce genre de situation, je préfère imbriquer
des
Post by DomiPost by DomiIF, plutôt que de faire de IF à rallonge.
Quelque chose comme cela (non testé)
sortie% = 0
do
if len(Aff_dateSortie.value) > 0 then
if isdate(Aff_dateSortie.value) then
sortie% = 1
else
sortie% = 0
end if
else
sortie% = 0
end if
if sortie% 0 then
msgbox "Veuillez entrer une date valide s.v.p."
Aff_dateSortie.setfocus
end if
loop until sortie% = 1
Post by DomiBonjour,
Dans un formulaire de saisie, je veux m'assurer que c'est bien
une
Post by DomiPost by Domidate qui
Post by Domia été saisie dans le textbox "Aff_dateSortie"
Je voudrais que le message ne s'affiche que s'il y a une valeur
saisie mais
Post by Domirien si le textbox est vide.
ou dit autrement : message d'erreur si textbox nonvide ET valeur
saisie <>
Post by Domid'une date.
If Not IsDate(Me.Aff_dateSortie) Then MsgBox "La date saisie
n'est pas
Post by Domivalide"
Comment faire ?
Merci