Microsoft 365 date calendrier, obtenir année - mois et jour

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite un bon dimanche 🙂

Me revoilà en ce dimanche "pluvieux" en Tunisie.
Je bute sur une ch'tite formule de rien qui fonctionne pourtant habituellement 😡

La date en "J" est générée par le calendrier et c'est certainement la raison du problème :
Pour info : la colonne O est juste un essai de formule. Elle n'existe pas dans mon fichier de travail.


En colonnes "P - Q - R", Je n'arrive pas à obtenir
Je n'arrive pas à obtenir : l'ANNEE de J - le MOIS de J - le JOUR de J
Auriez-vous la solution ?
Je joins le fichier test.
Avec mes remerciement,
Amicalement,
lionel,
 

Pièces jointes

Dernière édition:
Solution
Bonjour Lionel, ChTi160, le fil,

jean marie a écrit : «
FormatDateUserSurCell est une constante qui a pour valeur False
soit
Private Const FormatDateUserSurCell = False

If FormatDateUserSurCell Then ActiveCell.NumberFormat = FormatDateUser$
»

comme FormatDateUserSurCell est toujours FAUX, le test sera toujours FAUX
➯ ce qui est à droite de Then ne sera JAMAIS exécuté ➯ on mettra JAMAIS
le format de nombre indiqué par FormatDateUser.

AUSSI, on POURRAIT très bien SUPPRIMER cette ligne de code INUTILE !

MAIS vous n'avez pas bien lu ce qui...
Re
Je viens de regarder et je me demande pourquoi cette Ligne dans la procédure?
VB:
If FormatDateUserSurCell Then ActiveCell.NumberFormat = FormatDateUser$
alors que
VB:
FormatDateUserSurCell  est une constante  qui a pour valeur False
soit 
Private Const FormatDateUserSurCell = False
jean marie
 
Re
Ok il y a surement une bonne raison ! Lol
Car lorsque l'on utilise un Calendrier fait pour un certain fichier son utilisation n'est pas forcément la même dans un autre fichier d'où ces différences (Ici , ca ne gène pas , mais ca ne te sert pas non plus Lol !
Bonne journée
jean marie
 
Bonjour Lionel, ChTi160, le fil,

jean marie a écrit : «
FormatDateUserSurCell est une constante qui a pour valeur False
soit
Private Const FormatDateUserSurCell = False

If FormatDateUserSurCell Then ActiveCell.NumberFormat = FormatDateUser$
»

comme FormatDateUserSurCell est toujours FAUX, le test sera toujours FAUX
➯ ce qui est à droite de Then ne sera JAMAIS exécuté ➯ on mettra JAMAIS
le format de nombre indiqué par FormatDateUser.

AUSSI, on POURRAIT très bien SUPPRIMER cette ligne de code INUTILE !

MAIS vous n'avez pas bien lu ce qui est en commentaire !

VB:
Private Const FormatDateUserSurCell = False  ' True)format ci-dessous appliqué sur cellule  False)Non
Private Const FormatDateUser$ = "dd/mm/yyyy" ' "dd/mm/yyyy" ou "yyyy/mm/dd"

ça indique clairement que SI le programmeur qui utilise le calendrier veut appliquer le format de date de FormatDateUser, il lui suffit de remplacer False par True :

Private Const FormatDateUserSurCell = True

dès lors, le test sera toujours VRAI ➯ ce qui est à droite de Then sera TOUJOURS exécuté ➯ le format de nombre indiqué par FormatDateUser sera TOUJOURS appliqué.

le format de nombre actuel de FormatDateUser est : "dd/mm/yyyy" ➯ jour/mois/an.
un Anglo-Saxon pourra mettre à la place : "yyyy/mm/dd" ➯ an/mois/jour​

(noter que l'année est sur 4 chiffres, ce qui est préférable pour distinguer les années 1900 des années 2000)



conclusion : la constante FormatDateUserSurCell joue le rôle d'un « interrupteur » :

* FALSEPAS d'application du format de date

* VRAIAPPLICATION du format de date

on peut dire aussi que FormatDateUserSurCell joue le rôle d'une option générale de la mini-application Calendrier, de la même façon qu'il y a des options générales pour Excel (ainsi que des options avancées) ; ceci à un détail près : les options d'Excel sont choisies par l'utilisateur ; alors qu'ici, c'est plus le programmeur que l'utilisateur qui choisit les options, puisque l'utilisateur n'est pas censé « trifouiller » dans le code VBA !

oh le vilain ! 😝 ne pas hésiter à prendre une règle pour lui taper sur les doigts s'il l'a quand même fait ! et toi, Lionel, si jamais tu surprends ta secrétaire à modifier ton code VBA, tu as mon autorisation pour l'envoyer au coin. 😜 avec un bonnet d'âne sur la tête, non mais ! 😁 ça lui apprendra, à farfouiller dans tes dossiers ! comment ? ta secrétaire est aussi ta femme ? aïe ! oui, effectivement, ça pose un problème : si tu la mets au coin, elle risque de se mettre en grève, et de ne plus vouloir te faire la popote ! malédiction ! quel cruel dilemme ! punir ou ne pas punir, telle est la question ! 😁 🤪 🤣



petite info complémentaire : dans la ligne du test, le signe dollar « $ » est inutile, même pour un très riche américain, et à fortiori pour Donald Trump et l'oncle Sam (Joe Biden) ! 😁 🙄 on peut mettre :

If FormatDateUserSurCell Then ActiveCell.NumberFormat = FormatDateUser

remarque : j'ai reçu un twitt de Donald Trump qui me confirme qu'il est bien milliardaire, mais que ça l'empêche pas d'être l'objet d'une procédure d'impeachment (je traduis pour les lecteurs francophones : empêchement procédure de destitution).



voilà, ma thèse est terminée ! 😊 j'ai droit à quelle note ? avec une mention aussi ? 😜

et j'ai droit à un bonus, pour vous avoir évité de déranger Roland ?


je ne connais pas ce Roland ; j'espère que ce n'est pas le preux chevalier Roland, sinon, messires, allez vite lui prêter main forte ! je l'entend sonner de l'olifant (du cor), depuis l'arrière-garde ! le pauvre doit être en grand danger de succomber sous les attaques de ces traîtres de Sarrasins ! 😭

soan
 
- 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

Discussions similaires

Réponses
8
Affichages
532
Réponses
0
Affichages
475
Réponses
2
Affichages
327
Retour