* Insertions date non conformes *

David69400

XLDnaute Junior
Bonsoir/Bonjour

selon l'heure à laquelle vous lirer le message.:p

C'est un petit post simple qui j'espère attirera l'attention d'un membre du forum:

Pour la saisie de Fiches Visites Magasins, j'ai créé un UF Visite_Saisie.

Les valeurs saies en date s'inscrivent bien dans la colonne A de mon onglet visite comme souhaité.

En revanche, elle s'inscrivent à l'envers de la saisie :
ex 11 fev devient 2 novembre
ou quand le mois ne peut être inversé, ex 24 janvier,
l'insertion se fait en chiffre 24/01/14, mais sans être une date...


cf photo:
Bug dates.jpg

voici les codes liés à la date que j'ai utilisés pour le moment:

' Vérifie que c'est bien une date qui a été saisie dans la textbox1
i = 1
If Not IsDate(Me.Controls("Textbox" & i).Value) Then
MsgBox "Le format de la date est incorrect ou la date est manquante, veuillez la saisir de la manière suivante: JJMMAA ", vbExclamation
Me.Controls("Textbox" & i).Value = ""
Cancel = True
Exit Sub
End If

Private Sub TextBox1_Change()
' controle du remplissage de la Date

Dim Valeur As Byte

TextBox1.MaxLength = 10 'nb caractères maxi autorisé dans le textbox

Valeur = Len(TextBox1)

If Valeur = 2 Or Valeur = 5 Then TextBox1 = TextBox1 & "/"

'Si la saisie date est OK

If Len(TextBox1.Value) = 8 Then ComboBox4.SetFocus 'donne le focus au COMBOBOX4

End Sub


Question: : je pense que le format DATE n'est pas défini suffisamment, mais je n'ai pas trouvé la solution...

Merci de votre aide !!!

David

ps : fichier joint
 

Pièces jointes

  • 2 UF 220514.xlsm
    158.8 KB · Affichages: 39
  • 2 UF 220514.xlsm
    158.8 KB · Affichages: 37
  • 2 UF 220514.xlsm
    158.8 KB · Affichages: 36

Docmarti

XLDnaute Occasionnel
Re : * Insertions date non conformes *

Bonjour David69400.

Il faut convertir la date de type STRING en valeur de type DATE avec la commande de conversion CDate qui tient compte des paramètres de dates régionaux. Sinon la conversion de la date de type STRING sera effectuée automatiquement par VBA qui contient un outil de conversion qui remonte aux tous débuts du langage BASIC et qui considère toutes les dates comme étant au format américain : MM/JJ/AAAA

CDATE est donc essentiel pour éviter l'inversion du jour et du mois si vous n'êtes pas américain et que votre format de date n'est pas MM/JJ/AAAA.

Code:
i = 1
    'Choix de la textBox1 et colonne A

    O.Cells(LI, i).Value = CDate(Me.Controls("Textbox" & i).Value)



Les valeurs saies en date s'inscrivent bien dans la colonne A de mon onglet visite comme souhaité.

En revanche, elle s'inscrivent à l'envers de la saisie :
ex 11 fev devient 2 novembre
ou quand le mois ne peut être inversé, ex 24 janvier,
l'insertion se fait en chiffre 24/01/14, mais sans être une date...


...
Question: : je pense que le format DATE n'est pas défini suffisamment, mais je n'ai pas trouvé la solution...

Cordialement

Docmarti
 

Misange

XLDnaute Barbatruc
Re : * Insertions date non conformes *

Bonjour
en complément de la réponse de DocMarti :
tout ce qu'on saisit dans un textbox est du texte, même quand ça a l'apparence d'un nombre ou d'une date.
Et c'est parfois très plantant.
Plus d'infos sur la validation des data saisies dans un formulaire en général et plus particulièrement dans les textbox, notamment les dates ici
Ce lien n'existe plus
(voir aussi les pages précédentes et la suivante !)
 

David69400

XLDnaute Junior
Re : * Insertions date non conformes *

Bonjour DocMarti,

Un grand merci pour votre réponse qui règle parfaitement ma demande !
C'est vraiment appréciable que vous ayez pris la peine de répondre si .. tôt ce matin.
Et c'est typiquement l'aide qu'en temps que novice vba, j'attends des membres expérimentés.

Pour Misange,
qui a complété le post "tardivement" à 7h ... je plaisante bien sûr.

(voir aussi les pages précédentes et la suivante !)

je vous remercie aussi pour l'information sur les tutoriels excelabo..
Pour faire court : j’apprends en marchand et en me cognant sur le VBA plutôt que sur la lecture des ces pages et pages de tutoriels.
De temps en temps ils sont efficaces, mais il est plus facile de travailler sur des cas concrets qui me sont propres . C'est un peu égoïste peut être, mais ca marche bien .
Enfin, c'est sur ce cela demande de l'altruisme de la part des membres contributeurs du forums , même beaucoup, pour vous membres expérimentés qui prenaient le temps de répondre à touts ces novices qui posent les mêmes et bêtes questions années après années...

Donc merci et continuez svp , avec mansuétude.

Merci !

Davd
 

Discussions similaires

Réponses
12
Affichages
443
Réponses
5
Affichages
181

Statistiques des forums

Discussions
312 206
Messages
2 086 207
Membres
103 158
dernier inscrit
laufin