Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Date dans textbox

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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?
 
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
 
En effet ça marche!

Pour moi ma manipulation n'était pas différente d'un i=i+1
Je comprends pas pourquoi je formate la date en faisant
Date = Format(Date,...)
Et pas i en faisant i=i+1
 
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
 
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
 
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: 😱

Bonne soirée

Message édité par: Pascal76, à: 30/06/2005 18:25
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
431
Réponses
10
Affichages
789
Réponses
5
Affichages
904
Réponses
2
Affichages
766
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…