Format de dates Userform VBA

salut salut à tous je suis le débutant du VBA. j'ai un petit souci là...je me suis amusé à créer un Userform en VBA Excel permettant d'alimenter un petit tableau et qui contient un champ de date voici le code

Private Sub UserForm_Initialize()
  ' Assignation de la base
  Set LstBdD = ThisWorkbook.Sheets("BDD").ListObjects("Tableau1")
  ' Initialiser le formulaire
  txtDate.Value = Format(Date, "dd/mm/yyyy") 'date du jour
End Sub

le code est bon !

Mais mon souci c'est au niveau de la valeur renvoyée dans le tableau de remplissage

si dans le Userform j'ai renseigné 06/09/2022

au niveau du tableau, il y a inversion et cela devient 09/06/2022

ce qui fauche mes informations !

comment y remédier svpl ?

Bonjour,

Teste ceci

 txtDate.Value = CDate(Date) 'date du jour

ou

 txtDate.Value = Format(Date, "mm/dd/yyyy") 'date du jour

Bonjour,

Moi je pense que le problème se situe au moment ou tu envoies le contenu du Textbox vers la base :

Tout dépend de la manière dont tu envoies les données vers la base (Array ou "en dur"), mais dans les 2 cas inutile d'envoyer le TextBox : Si c''est un tableau structuré c'est lui qui se chargera de formater... Envoie directement un Long dans ta base :

Arr = CLng(Date) 'ou...
Cells(x,y) = CLng(Date)

Ou si tu es encore sur un tableau ordinaire tu envoies

Cells(x,y) = Format(Date, "mm/dd/yyyy") 'date du jour

A+

Bonjour bonjour.

ma base de donnée est un tableau structuré

Re,

As-tu au moins testé mes solutions?

Mon problème c'est que le tableau structuré permute le mois et le jour.

càd

sur ma userform, je renseigne 07/09 (qui correspond au 07 septembre)

Lorsque je valide pour rentrer cette donnée sur le tableau structuré, ça apparait 09/07 (qui correspond au 09 juillet)

et c'est un casse-tête !

le code est correct

vos suggestions de codes sont bet et bien corrects ! mais je ne comprends pas le pourquoi ce changement

Mon problème c'est que le tableau structuré permute le mois et le jour.

càd

sur ma userform, je renseigne 07/09 (qui correspond au 07 septembre)

Lorsque je valide pour rentrer cette donnée sur le tableau structuré, ça apparait 09/07 (qui correspond au 09 juillet)

et c'est un casse-tête !

le code est correct

vos suggestions de codes sont bet et bien corrects ! mais je ne comprends pas le pourquoi ce changement

en VBA le language EXCEL n'est pas Français, donc on inverse

Private Sub UserForm_Initialize()
  ' Assignation de la base
  Set LstBdD = ThisWorkbook.Sheets("BDD").ListObjects("Tableau1")
  ' Initialiser le formulaire
  txtDate.Value = Format(Date, "mm/dd/yyyy") 'date du jour
End Sub

Pour mon code ci-dessus

Comment pouvoir laisser le champ de la textbox vide (qu'il n'affiche plus la date du jour) ? de telle sorte que l'utilisateur puisse remplir la date manuellement ?

comment corriger ce code svpl

Re,

Je sais pas, mais avec un peu de jugeote, je supprimerais une partie du code

 ' Initialiser le formulaire
  txtDate.Value = Format(Date, "mm/dd/yyyy") 'date du jour

je ne trouve pas vraiment de solution à mon problème

hélas

Re,

Mais l'erreur vient de la macro du bouton d'enregistrement des données, et non de l'initialize comme le précise GALOPIN plus haut

dans cette macro, il te faut modifier le format du textbox de la date comme indiqué --> CDate(Date)

ou alors si tu le fais manuellement, supprimer cette ligne

oui ça a marché merci.

mais seulement le dernier bémol c'est que les informations renvoyées maintenant dans le tableau

se présentent au format "texte"

cad il ne voit pas 07/09/2022 comme une date mais plutot comme du texte

place ta ligne de validation de cette date

Re,

Regarde cet exemple

57exemple.xlsm (15.37 Ko)

Enfin ça a marché parfaitement ! je vous suis reconnaissant

Rechercher des sujets similaires à "format dates userform vba"