Bonjour à tous,
je viens solliciter votre aide pour un souci de formatage de txtbox au format date.
J'ai récupéré une table Access où j'avais pas mal de dates, or quand je veux récupérer ces dates de mon tableau excel dans le userform elles apparaissent sous forme numérique.
J'ai regardé un peu partout comment faire mais je ne trouve pas de solution qui fonctionne.
Je vous joint un petit fichier explicatif avec ce que j'ai fait.....mais sans succès
D'avance merci pour votre aide
Le fichier est resté coincé dans les tuyaux.
Si les dates sont sous forme numérique telle que 43634 (pour aujourd'hui) peut-être que TextBox1.Text = Format(LaDateNumérique,"dd/mm/yyyy")
le ferait mais sinon, pousser le fichier plus loin dans les tuyaux.
Bon fin d'après-midi
Boujour.
Normalement si on affecte une valeur Date à une TextBox elle l'affiche sous forme jj/mm/aaaa.
Si ce n'est pas le cas dans votre classeur, pouvez vous pousser le .xlsm, qu'on puisse trouver pourquoi ?
Boujour.
Normalement si on affecte une valeur Date à une TextBox elle l'affiche sous forme jj/mm/aaaa.
Si ce n'est pas le cas dans votre classeur, pouvez vous pousser le .xlsm, qu'on puisse trouver pourquoi ?
Bonsoir Dranreb. Merci de porter attention à mon souci de format.
Je n'ai pas joint le fichier car c'est un fichier de séances de patients, de plus il fait 4Mo.
Je vois pas trop comment le scinder en petits bouts.
Est ce que le code suffirait en texte ?
Faite un fichier avec trois lignes de séances bidons reproduisant le problème et virez tout ce qui ne le concerne pas.
Sinon vérifiez que vos cellules contiennent bien des dates et non du texte et faites des essais de renseignement de TextBox dans un petit UserForm très simple à partir de ces valeurs de cellules
Par exemple j'ai mis ça dans un nouvel UserForm1 que j'ai muni d'une TextBos1 dans un nouveau classeur :
VB:
Option Explicit
Private Sub UserForm_Initialize()
ActiveSheet.Cells(1, 1).Value = Date
TextBox1.Text = ActiveSheet.Cells(1, 1).Value
End Sub
En faisant F5 dessus ça m'a bien inscrit la date d'aujourd'hui dans la cellule A1 et affiché le texte "18/06/2019" dans la TextBox.
Remarque: Date est aussi un type de donnée et non seulement une fonction sans argument renvoyant la date du jour.
Par exemple :
VB:
Private Sub UserForm_Initialize()
Dim D As Date
D = Date + 2
TextBox1.Text = D
End Sub
Affiche la date d'après-demain. Mais en déclarant D As Double au lieu de As Date ça affiche "43636"
Par exemple j'ai mis ça dans un nouvel UserForm1 que j'ai muni d'une TextBos1 dans un nouveau classeur :
VB:
Option Explicit
Private Sub UserForm_Initialize()
ActiveSheet.Cells(1, 1).Value = Date
TextBox1.Text = ActiveSheet.Cells(1, 1).Value
End Sub
En faisant F5 dessus ça m'a bien inscrit la date d'aujourd'hui dans la cellule A1 et affiché le texte "18/06/2019" dans la TextBox.
Remarque: Date est aussi un type de donnée et non seulement une fonction sans argument renvoyant la date du jour.
Par exemple :
VB:
Private Sub UserForm_Initialize()
Dim D As Date
D = Date + 2
TextBox1.Text = D
End Sub
Affiche la date d'après-demain. Mais en déclarant D As Double au lieu de As Date ça affiche "43636"
Par exemple j'ai mis ça dans un nouvel UserForm1 que j'ai muni d'une TextBos1 dans un nouveau classeur :
VB:
Option Explicit
Private Sub UserForm_Initialize()
ActiveSheet.Cells(1, 1).Value = Date
TextBox1.Text = ActiveSheet.Cells(1, 1).Value
End Sub
En faisant F5 dessus ça m'a bien inscrit la date d'aujourd'hui dans la cellule A1 et affiché le texte "18/06/2019" dans la TextBox.
Remarque: Date est aussi un type de donnée et non seulement une fonction sans argument renvoyant la date du jour.
Par exemple :
VB:
Private Sub UserForm_Initialize()
Dim D As Date
D = Date + 2
TextBox1.Text = D
End Sub
Affiche la date d'après-demain. Mais en déclarant D As Double au lieu de As Date ça affiche "43636"
Effectivement cela fonctionne bien dans ce sens. (Userform => feuille), mais c'est valable que pour la date du jour.
Là où est le probleme c'est pour recuperer les valeurs déjà inscrites du tableau (feuille => userform) et si je veux mettre une autre date que celle d’aujourd’hui dans les textbox ?
Ou est le problème ? Je mets bien la valeur de ma cellule A1 dans le premier exemple, non ?
Mettez une instruction avant un cas où ça ne va pas : MsgBox TypeName(LExpressionRangeReprésentantLaCelluleIncriminée.Value)
Si ça affiche autre chose que "Date" (comme "Double" par exemple) ça explique que ce n'est pas affiché comme une date.
Pour bien faire il faudrait trouver pourquoi c'est comme ça, et si ce nest pas possible de le réparer affectez TextBox1 = CDate(LExpressionRangeReprésentantLaCelluleIncriminée.Value)
Ou est le problème ? Je mets bien la valeur de ma cellule A1 dans le premier exemple, non ?
Mettez une instruction avant un cas où ça ne va par : MsgBox TypeName(LObjetRangeReprésentantLaCelluleIncriminée.Value)
Si ça affiche autre chose que "Date" (comme "Double" par exemple) ça explique que ce n'est pas affiché comme une date.
Pour Bien faire il faudrait trouver pourquoi c'est comme ça, et si ce nest pas possible affectez TextBox1=CDate(LObjetRangeReprésentantLaCelluleIncriminée.Value)
Ok mais si j'ai déjà une date de 2017 par exemple en A1 quand je la récupére dans le userform elle s'affiche sous forme de nombre et pas de date
Donc je cherche à définir que toutes les textbox du userform contenant les dates soient formatées pour afficher une date et non pas un nombre.
Non, si ce nest pas affiché comme une date c'est que la cellule vaut autre chose qu'une date.
Mettez la MsgBox que je vous ai indiquée pour le vérifier.
CDate(LExpressionRangeReprésentantLaCelluleIncriminée.Value) est affiché comme une date mais vous pouvez préférer
Format(LExpressionRangeReprésentantLaCelluleIncriminée.Value, "dd/mm/yyyy")
Non, si ce nest pas affiché comme une date c'est que la cellule vaut autre chose qu'une date.
Mettez la MsgBox que je vous ai indiquée pour le vérifier.
Non la cellule A1 est bien au format date....(comme toutes les cellules qui contiennent des dates dans mon tableau)....(désolé je ne vois pas de MsgBox dans le bout de code)