Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA Excel, date dans textbox

3 réponses
Avatar
CinéPhil
Bonjour,
J'ai créé un formulaire qui contient 2 textbox pour saisir des dates.
Lorsque l'utilisateur clique sur le bouton OK, un contrôle est fait par mon
programme pour vérifier que ce sont bien des dates qui ont été saisies dans
les texbox appropriées, puis les données sont transférées vers la feuille
Excel.
Si la date est du genre 22/11/2005, c'est correctement transféré. Mais si la
date est du genre 01/03/2005 (1er mars 2005), la date est transposée au
format anglais 03/01/2005 (et sera donc compris par un français 3 janvier
2005). Le format de la cellule du tableau est bien en jj/mm/aaaa et mon
programme demande bien format(TexBoxDate, "dd/mm/yyyy"). Il semble s'agir
donc d'un problème d'interprétation de la saisie par VB avant le formatage.
Je n'ai pas trouvé d'astuce permettant de résoudre ce problème. Merci de
m'aider.

3 réponses

Avatar
Elliac
Bonjour,

Il faut utiliser la fonction CDate :
Range("A1")Íate(TextBox1)

Camille

"CinéPhil" wrote:

Bonjour,
J'ai créé un formulaire qui contient 2 textbox pour saisir des dates.
Lorsque l'utilisateur clique sur le bouton OK, un contrôle est fait par mon
programme pour vérifier que ce sont bien des dates qui ont été saisies dans
les texbox appropriées, puis les données sont transférées vers la feuille
Excel.
Si la date est du genre 22/11/2005, c'est correctement transféré. Mais si la
date est du genre 01/03/2005 (1er mars 2005), la date est transposée au
format anglais 03/01/2005 (et sera donc compris par un français 3 janvier
2005). Le format de la cellule du tableau est bien en jj/mm/aaaa et mon
programme demande bien format(TexBoxDate, "dd/mm/yyyy"). Il semble s'agir
donc d'un problème d'interprétation de la saisie par VB avant le formatage.
Je n'ai pas trouvé d'astuce permettant de résoudre ce problème. Merci de
m'aider.


Avatar
PMO
Bonjour,

Une piste avec

Private Sub CommandButton1_Click()
Dim D As Date
If Not IsDate(Me.TextBox1.Text) Then
Me.TextBox1.Text = ""
Me.TextBox1.SetFocus
Exit Sub
End If
D = CDate(Me.TextBox1.Text)
ActiveSheet.[a1] = D
End Sub

Cordialement
--
PMO
Patrick Morange



Bonjour,
J'ai créé un formulaire qui contient 2 textbox pour saisir des dates.
Lorsque l'utilisateur clique sur le bouton OK, un contrôle est fait par mon
programme pour vérifier que ce sont bien des dates qui ont été saisies dans
les texbox appropriées, puis les données sont transférées vers la feuille
Excel.
Si la date est du genre 22/11/2005, c'est correctement transféré. Mais si la
date est du genre 01/03/2005 (1er mars 2005), la date est transposée au
format anglais 03/01/2005 (et sera donc compris par un français 3 janvier
2005). Le format de la cellule du tableau est bien en jj/mm/aaaa et mon
programme demande bien format(TexBoxDate, "dd/mm/yyyy"). Il semble s'agir
donc d'un problème d'interprétation de la saisie par VB avant le formatage.
Je n'ai pas trouvé d'astuce permettant de résoudre ce problème. Merci de
m'aider.


Avatar
Hervé 92
Pour régler les problèmes de gestion des dates par VBA en format US,
j'utilise systématiquement une conversion en numérique (ex : 38253) par
l'intermédiaire d'une fonction. Il est ensuite très simple de convertir par
CDATE
Extrait du site:
"Quand on demande à Visual Basic ou à VBA de traiter une date, qu'elle soit
saisie dans une boîte de dialogue, issue d'une feuille Excel ou qu'elle
provienne d'un fichier ASCII ouvert à l'aide de opentext, invariablement, on
la retrouve soit au format américain (mm/dd/yyyy) soit sous forme de chaîne
de caractères mais rarement au format français(jj/mm/aaaa). Que faire ? "

C'est ici : http://www.excelabo.net/xl/dates.php#datefrancaise


"CinéPhil" a écrit dans le message de
news:
Bonjour,
J'ai créé un formulaire qui contient 2 textbox pour saisir des dates.
Lorsque l'utilisateur clique sur le bouton OK, un contrôle est fait par
mon
programme pour vérifier que ce sont bien des dates qui ont été saisies
dans
les texbox appropriées, puis les données sont transférées vers la feuille
Excel.
Si la date est du genre 22/11/2005, c'est correctement transféré. Mais si
la
date est du genre 01/03/2005 (1er mars 2005), la date est transposée au
format anglais 03/01/2005 (et sera donc compris par un français 3 janvier
2005). Le format de la cellule du tableau est bien en jj/mm/aaaa et mon
programme demande bien format(TexBoxDate, "dd/mm/yyyy"). Il semble s'agir
donc d'un problème d'interprétation de la saisie par VB avant le
formatage.
Je n'ai pas trouvé d'astuce permettant de résoudre ce problème. Merci de
m'aider.