VBA Excel : Format de date
Résolu
misfit
-
Kimo -
Kimo -
Bonjour,
Je n'arrive pas à mettre en forme une date saisie dans un formulaire :
Lors de la fermeture du formulaire les données saisies sot recopiées dans des cellules d'une feuille de calcul ; j'ai défini sur les cellules de la 1ere colonne de ma feuille de calcul un format "Date" sous forme "jj/mm/aaaa".
Dans le module (voir code ci-dessous) je force la valeur de la textbox à ce format :
Or malgré toutes ces précautions, la date recopiée dans la cellule est au format "mm/jj/aaaa".
Je ne souhaite pas modifier les préférences régionales.
Quelqu'un a-t-il une solution ?
Merci d'avance
Je n'arrive pas à mettre en forme une date saisie dans un formulaire :
Lors de la fermeture du formulaire les données saisies sot recopiées dans des cellules d'une feuille de calcul ; j'ai défini sur les cellules de la 1ere colonne de ma feuille de calcul un format "Date" sous forme "jj/mm/aaaa".
Dans le module (voir code ci-dessous) je force la valeur de la textbox à ce format :
If saisie.date_ev.Value <> "" Then
If Not IsDate(saisie.date_ev.Value) Then
MsgBox "Date incorrecte.", vbCritical + vbOKOnly, "Erreur"
saisie.date_ev.Value = ""
saisie.date_ev.SetFocus
saisie.Hide
saisie.Show
Else
saisie.date_ev.Value = Format(saisie.date_ev.Value, "dd/mm/yyyy")
End If
End If
Or malgré toutes ces précautions, la date recopiée dans la cellule est au format "mm/jj/aaaa".
Je ne souhaite pas modifier les préférences régionales.
Quelqu'un a-t-il une solution ?
Merci d'avance
A voir également:
- Vba format date jj/mm/aaaa
- Vba numberformat date - Meilleures réponses
- Vba date du jour format dd/mm/yyyy - Meilleures réponses
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Jj/mm/aaaa ✓ - Forum Bureautique
- Format dat - Guide
- Hp usb disk storage format tool - Télécharger - Stockage
21 réponses
Bonjour Misfit,
Les formats de dates attribués aux cellules dans Excel ne se traduisent pas tous de la même façon en VBA.
Ainsi, une cellule dont on définit le format en jj/mm/aa sous Excel est traduit en VBA par : NumberFormat = dd/mm/yy. Normal.
Tandis qu'un format défini par jj/mm/aaaa est traduit par : NumberFormat = m/d/yyyy, ce qui change tout.
Concrètement, en VBA, inverse les mois et les jours.
Armojax.
Les formats de dates attribués aux cellules dans Excel ne se traduisent pas tous de la même façon en VBA.
Ainsi, une cellule dont on définit le format en jj/mm/aa sous Excel est traduit en VBA par : NumberFormat = dd/mm/yy. Normal.
Tandis qu'un format défini par jj/mm/aaaa est traduit par : NumberFormat = m/d/yyyy, ce qui change tout.
Concrètement, en VBA, inverse les mois et les jours.
Armojax.
Merci de ta réponse qui en plus fonctionne super bien.
Ils sont fous ces américains ...
ActiveCell.NumberFormat = "mm/dd/yyyy" 'date/mois inversé
Les américains ne sont pas fou du tout... Excel est tout simplement d'origine Américaine et l'interface d'excel est adapté suivant les différents pays mis à part la VBA qui elle, est rester Américaine donc tout ce qui est de la-bas comme le format date dois être adapter au interfaces différentes d'excel.
Je ne connais pas grand chose mais à voir comme ce compose et s'écrit la VBA, la déduction vas de soit...
;)