XL 2019 Format de dates dans un Userform

  • Initiateur de la discussion Initiateur de la discussion CPaq
  • 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 !

CPaq

XLDnaute Nouveau
Bonjour.

Grand-papa éprouve de la difficulté 😊

J’ai un Userform « Locataires » dans lequel je souhaite récupérer des dates faisant partie de ma feuille « Locataires » en cliquant sur le bouton « Locataire selon l’immeuble » (ou les autres boutons également). Les dates dans la feuille sont au format « AAAA-MM-JJ ». Lorsqu’elles reviennent dans le Userform, elles sont présentées au format « JJ-MM-AAAA ». De nombreuses heures de lectures/visionnement/essais infructueux plus tard, je suis au même point.

Aussi, comment m’assurer que les dates que j’inscrirais dans le Userform serait bien inscrites dans la feuille « Locataires ».

Immense merci à l’avance!
 

Pièces jointes

12/11/2026 est toujours interprété 12 novembre 2026 par VBA quand on l'affecte à une variable de type Date, jamais 11 décembre 2026 contrairement à Excel qui, lui, l'interprète toujours comme ça quand on l'affecte à une Value de Range représentant une cellule.
 
Dernière édition:
CDate sert à transformer un String en Date à destination d'une valeur de cellule, pas l'inverse. Pour transformer une Date en String la fonction Format pourrait être utilisée, mais ce n'est pas nécessaire car le format "dd/mm/yyyy" est assumé par défaut pour la conversion d'une Date en String à destination d'un contrôle qui ne peut pas valoir autre chose qu'un String.
Info: Excel stocke en réalité une Date en virgule flottante double précision en tant que valeur de cellule. Sa vraie valeur est la durée en jours de cette date depuis le 1er janvier 1900.
 
Dernière édition:
re
au pire essaie avec ".Text"
Me.TextBox11 = CDate([c.Offset(, i + 10)].text)
j'ai re testé dans le doute avant de de le dire


@Dranreb faux cdate converti en numerique de date tout ce qui peut l'être
et en affet l'affichage sera en date dans les input de type...box" y compris le msgbox

démo
et pour le coup je teste même le string2 format CA-US
le msgbox a la fin donne la même date à chaque fois
on constate donc que même si la date n'est pas au bon format dans le string elle l'est à l'affichage
tout simplement parce que vba gère nativement (MËME DANS LES VERSIONS FRANCAISES )les 3 formats de date

VB:
Sub test()
Dim dateLong As Long, datestring As String, datestring2 As String, datedate As Date
datedate = Date
datestring = CStr(datedate)
datestring2 = Format(datedate, "yyyy/mm/dd")
dateLong = CLng(Date)

MsgBox "datedate" & ";type " & TypeName(datedate) & " :  " & CDate(datedate)
MsgBox "datestring" & ";type " & TypeName(datestring) & " :  " & CDate(datestring)
MsgBox "datestring" & ";type " & TypeName(datestring2) & " :  " & CDate(datestring2)
MsgBox "datelong " & ";type " & TypeName(dateLong) & " :  " & CDate(dateLong)
End Sub
a la sortie pour vba ou excel c'est bien une date
oserais-je rappeler aussi qu'il y a la fonction native "DateValue" qui identifie et converti en date le string d'une date avec le mois en lettre a partir du moment ou il est bien orthographié
 
Salut,
comme Cathodique au message #8 j'ai une erreur système dès que j'essaie d'ouvrir le formulaire du classeur :
ErreurVBA.png


et dès que j'essaie de l'ouvrir dans l'éditeur même chose. Cela m'intriguait alors j'ai fait différents essais. L'erreur système peut être due à un fichier .frx du formulaire corrompu ou contenant quelque chose qui n'est pas présent. Cela peut être par exemple une image ou une icône. Dans LibreOffice j'arrivais à ouvrir le formulaire en édition et je n'avais pas des icônes dans les boutons Réinitialiser et Mobile :
LibreOffice.png


J'ai réussi à trouver une version d'Excel qui ouvre le formulaire du classeur et je vois toutes les icones. J'ai supprimé les icônes que je ne voyais pas dans LibreOffice dans les boutons et j'ai enregistré le classeur. Maintenant j'arrive à éditer le formulaire dans mon Excel. Conclusion : les icônes des boutons mobile et du bouton réinitialiser doivent être légèrement vérolés et mon Excel est plus strict pour lire ces icônes que d'autres versions.
Si CPaq a ces icones en réserve et si il peut les mettre en pièce jointe pour voir si elles sont correctes.
Nullosse
 
Moi je n'ai pas vu de message d'erreur, sur le moment le formulaire m'a tout de même semblé mal foutu avec plein de trucs qui se chevauchent empilés les uns sur les autres.
Maintenant je me dis que c'est peut-être normal et voulu.
Concernant les icones sur les boutons, ça m'a déjà causé des problèmes similaires avec d'autres fichiers; j'avais simplement oublié de les retirer, ce que je vais faire maintenant.
En effet, plusieurs items se chevauchent dans le Userform. Certains de ceux là sont masqués selon que j'inscrit un locataire ou que je souhaite le modifier. Je fais alors apparaître un label qui masque ou non des éléments.
 
Salut
moi je n'ai pas pu m'empêcher
j'ai supprimé tout tes icons
et
1772592102056.png


j'en ai même ajouter dans les 4 gros boutons
1772592159554.png


comment j'ai fait:
comme ceci
VB:
Private Sub UserForm_Initialize()
    ComboBox9 = ""
    ComboBox8.ColumnCount = 2
    ComboBox9.ColumnCount = 2
    Me.ComboBox3.ListIndex = -1
    Me.ComboBox4.ListIndex = -1
    Me.ComboBox5.ListIndex = -1


Chercher_Locataire.Picture = Application.CommandBars.GetImageMso("AddressBook", 30, 30)
Ajouter_Locataire.Picture = Application.CommandBars.GetImageMso("DistributionListAddNewMember", 30, 30)
Modifier_Locataire.Picture = Application.CommandBars.GetImageMso("CheckNames", 30, 30)
Trouver_Nom.Picture = Application.CommandBars.GetImageMso("ZoomClassic", 30, 30)


Label15.Picture = Application.CommandBars.GetImageMso("Call", 30, 30)
Label6.Picture = Application.CommandBars.GetImageMso("Call", 30, 30)
Label7.Picture = Application.CommandBars.GetImageMso("Reply", 30, 30)
Cmd_Modifier_Locataire.Picture = Application.CommandBars.GetImageMso("EditText", 30, 30)
Cmd_Supprimer2_Locataire.Picture = Application.CommandBars.GetImageMso("Clear", 30, 30)
Cmd_Reinitialiser_Locataire.Picture = Application.CommandBars.GetImageMso("Undo", 30, 30)
Cmd_Fermer_Locataire.Picture = Application.CommandBars.GetImageMso("GroupInkClose", 30, 30)
Cmd_Ajouter_Locataire.Picture = Application.CommandBars.GetImageMso("DistributionListAddNewMember", 30, 30)

End Sub
en fait on réutilise les imageMso du ruban d'excel
 
Salut
moi je n'ai pas pu m'empêcher
j'ai supprimé tout tes icons
et
Regarde la pièce jointe 1228322

j'en ai même ajouter dans les 4 gros boutons
Regarde la pièce jointe 1228323

comment j'ai fait:
comme ceci
VB:
Private Sub UserForm_Initialize()
    ComboBox9 = ""
    ComboBox8.ColumnCount = 2
    ComboBox9.ColumnCount = 2
    Me.ComboBox3.ListIndex = -1
    Me.ComboBox4.ListIndex = -1
    Me.ComboBox5.ListIndex = -1


Chercher_Locataire.Picture = Application.CommandBars.GetImageMso("AddressBook", 30, 30)
Ajouter_Locataire.Picture = Application.CommandBars.GetImageMso("DistributionListAddNewMember", 30, 30)
Modifier_Locataire.Picture = Application.CommandBars.GetImageMso("CheckNames", 30, 30)
Trouver_Nom.Picture = Application.CommandBars.GetImageMso("ZoomClassic", 30, 30)


Label15.Picture = Application.CommandBars.GetImageMso("Call", 30, 30)
Label6.Picture = Application.CommandBars.GetImageMso("Call", 30, 30)
Label7.Picture = Application.CommandBars.GetImageMso("Reply", 30, 30)
Cmd_Modifier_Locataire.Picture = Application.CommandBars.GetImageMso("EditText", 30, 30)
Cmd_Supprimer2_Locataire.Picture = Application.CommandBars.GetImageMso("Clear", 30, 30)
Cmd_Reinitialiser_Locataire.Picture = Application.CommandBars.GetImageMso("Undo", 30, 30)
Cmd_Fermer_Locataire.Picture = Application.CommandBars.GetImageMso("GroupInkClose", 30, 30)
Cmd_Ajouter_Locataire.Picture = Application.CommandBars.GetImageMso("DistributionListAddNewMember", 30, 30)

End Sub
en fait on réutilise les imageMso du ruban d'excel
 
@patricktoulon
Wow! Immense merci Patrick. Je vais conserver ça très précieusement et l'appliquer. L'apprentissage sur le tas a ses limites et je crois que je les ai atteintes en ce moment. Je dois absolument me trouver une formation en ligne avec vidéos pour que je puisse mieux comprendre ce que je fais. Merci encore à tous ceux qui ont apporté leur contribution afin de solutionner mon enjeu.
 
re

@CPaq c'est en forgeant que l'on devient forgeron

@nullosse oui j'ai sélectionné des idMso valables de 2013 à 2024

vous l'aurez compris pour des petit icônes pour bouton ,utiliser les idmso peut être une alternative intéressante
plutôt que de charger le fichier en kilo avec des images externes qui parfois sont des hybrides entre svg wmf png on sait plus vraiment et qui posent des problèmes
 
- 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

  • Question Question
Microsoft 365 erreur de date
Réponses
2
Affichages
577
Réponses
2
Affichages
556
A
Réponses
2
Affichages
943
Arnnaud
A
Retour