Date dans textbox

  • Initiateur de la discussion Hady
  • Date de début
H

Hady

Guest
Bonjour à tous!

Voici ma procédure :

Sub InfoGraphique(Fe As String, Chart As Chart, TB As String)
Dim MaJ As Date
Sheets(Fe).Select
MaJ = Range(CelMaJ).Value
MaJ = Format(MaJ, 'mm/yyyy')
Chart.Activate
ActiveChart.Shapes(TB).Select
Selection.Characters.Text = 'Update : ' & Chr(10) & MaJ
ActiveChart.Deselect
End sub

Ce qui cloche c'est que la textbox affiche la date sous la forme 01/01/2005 et non pas 01/2005. Pourtant je pensais avoir bien géré l'histoire du format avec MaJ = Format(MaJ, 'mm/yyyy').
Est-ce que quelqu'un sait pourquoi le bon format de s'affiche pas?
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Hady, le Forum

Ce qu'il me semble c'est que tu formattes ta date au niveau de ta Variable 'Maj' qui est déclarée en tant que Date... Ce qui ne sert à rien... C'est plus tard que tu dois le faire, lors de l'envoi de cette date dans ta TextBox...

TextBoxX = 'Update : ' & Chr(10) & Format(MaJ, 'mm/yyyy')

Bon Aprèm
@+Thierry
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Si je peux me permettre une petite explication

tu déclares ta variable en tant que Date

Dim MaJ As Date

Donc elle est stockée par excel comme une date au format dd/mm/yyyy

en fait quand tu fais ton MaJ = Format(MaJ, 'mm/yyyy') tu remets juste ta date MAJ au 01 du mois de MAJ

exemple :

MAj=30/06/2005
MaJ = Format(MaJ, 'mm/yyyy')
alors Maj devient 01/06/2005 mais pas 06/2005

Donc le format que tu veux lui donner est important au moment de l'affichage et donc de ton.text

Selection.Characters.Text = 'Update : ' & Chr(10) & Format(MaJ, 'mm/yyyy')

Bonne soirée
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Pascal, re Hady

En fait il ne faut pas non plus perdre de vu que Windows et tous ses composants sont en format américain pour les Dates et par conséquent on se trouve souvent confronté à faire des manipulations 'forcées' pour récupérer une Date en format DD/MM/YYYY, car le format 'Natif' d'une Date en VBA est MM/DD/YYYY.

Cependant, j'ai testé rapidement ceci :

Sub PremierTestPourVoirCeQueRacontePascalEtQuiEstTrèsInterressant()
Dim MaJ As Date

MaJ = Date
MaJ = Format(MaJ, 'mm/yyyy')

MsgBox Format(MaJ, 'DD/MM/YYYY')

End Sub

Et tu as bien raison Pascal, en prime on' bousille' la date en appliquant un Formattage de la Variable Date !

Du coup j'ai testé ceci :

Sub SecondTestPourVoirCeQueRacontePascalEtQuiEstTrèsInterressant()
Dim MaJ As Date

MaJ = Date
MaJ = Format(MaJ, 'mm')

MsgBox Format(MaJ, 'DD/MM/YYYY')

End Sub

Et la et bien je m'attendais à avoir '06/01/1900' et bien NON !!! le sixième mois qu'est bien Juin, (même chez dans l'empire 'Tomato KetchUp') devient un Cinq !!! lol

Comme quoi les Dates nous font avoir des cheveux blancs ...

Bonne Soirée
@+Thierry
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Thierry pour continuer j'ai regarder un truc

en fait 1 pour VBA en date correspond au 31/12/1899 (d'où le 6 qui devient 05/01/1900 en format dd/mm/yyyy) alors que sur Excel c'est le 01/01/1900

Quelle logique implacable !!!!!! :woohoo: :eek:

Bonne soirée

Message édité par: Pascal76, à: 30/06/2005 18:25
 

Discussions similaires

Statistiques des forums

Discussions
312 286
Messages
2 086 791
Membres
103 392
dernier inscrit
doc_banane