Format date MDF Xlcalendar dans Userform | ||
---|---|---|
Inscription: 17/08/2009
Messages:
27
Système d'exploitation: PC Version Excel utilisée: 2003 |
Posté le : 18-08-2009 00h34
Merci beaucoup pour votre utilitaire qui est fantastique.
Voici mes 2 problèmes : 1. Format de date incorrect de Userform à feuille Excel 2. Saisie date sans faire double clic 1. J'utilise mdf Xlcalendar V1.1 dans un Userform (textbox) pour effectuer une saisie dans une mini base excel. Le code initial associé a ma textbox était Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Je l'ai modifié par : Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Si je conserve le format fourni dans la FAQ alors la date est correcte, mais le format de ma cellule d'arrivée n'est plus bon (La cellule d'arrivée est utilisée pour généré automatiquement un planning). 2. J'ai effectué une tentative pour faire apparaître le calendrier par un simple clic, mais cette dernière s'est avérée infructueuse. Private Sub TextBox1_Click(ByVal Cancel As MSForms.ReturnBoolean) Je vous joins mon fichier excel et vous remercie par avance pour vos réponse |
|
|
Re: Format date MDF Xlcalendar dans Userform | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 18-08-2009 05h04
Bonsoir Alragorn, merci du compliment et bienvenue sur XLpages.com
Tout d'abord, ATTENTION lorsque tu fournis un fichier en pièce jointe STP : ton classeur crée une barre d'outils, mais ne la supprime pas à la fermeture ! Pour les visiteurs qui auraient testé ce fichier, fermer cette barre n'est pas suffisant, pour la supprimer complètement il convient de passer par le menu de personnalisation des barres d'outils d'Excel. Et pour ceux qui ne sauraient pas faire, on peut aussi procéder comme ça : - Avec Excel ouvert, ALT + F11 pour basculer sur VBA - CTRL + G pour afficher la fenêtre d'exécution - Dans cette fenêtre d'exécution, taper : Application.CommandBars("Projet Outil").Delete Revenons maintenant à tes questions : 1 - Si j'ai bien compris ton intention, voici comment régler le problème : DANS LE MODULE DE CODE DU USERFORM Je remets le code des évènements DblClick() comme tu souhaitais le faire, c'est à dire (dd/mm/yyyy) : Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) C'est dans l'évènement OKButton_Click(), qui gère le transfert de la donnée du TextBox vers la feuille de calcul qu'il convient d'agir : Cells(LigneSuivante, 2) = CDate(TextBox1.Text) Explication : On retrouve dans ce cas toute la subtilité (déroutante) des formats de données... De par la nature des contrôles TextBox, les données contenue dans ces derniers sont de type String (chaine de caractères). Dans ton cas, ces données représentent certes des Dates, mais il n'empêche que l'expression contenue reste de type Stringet ce, quelque soit la façon dont on a saisi ces éléments (avec ou sans le XLcalendar, la donnée d'un TextBox reste une chaine de caractères). Tes cellules, elles, s'attendent à recevoir une donnée de type Date. Si tu te contentes de transférer dans une telle cellule, une valeur de type chaine de caractères, Excel va automatiquement chercher à convertir l'expression texte en une expression de type Date. L'ennui, c'est qu'Excel n'a pas été conçu par des gaulois ... et donc, tu te retrouve avec des dates au format... anglo-saxon ! Le moyen simple que j'ai appliqué ici, c'est de forcer cette conversion de String en Date dès le départ, grâce à la fonction de conversion CDdate(), et pour empêcher Excel de le faire lui même avec sa procédure automatique douteuse... 2 - Concernant l'affichage du XLcalendar sur un seul clic dans le TextBox, il n'y a pas d'évènement Click() ou même RightClick() pour ce contrôle ActiveX. Pour ma part, je préfère le Double-clic, toutefois si tu le souhaites vraiment, tu peux faire aussi comme ça : Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Private Sub TextBox1_Enter() Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Format date MDF Xlcalendar dans Userform | ||
---|---|---|
Inscription: 17/08/2009
Messages:
27
Système d'exploitation: PC Version Excel utilisée: 2003 |
Posté le : 18-08-2009 08h53
Merci beaucoup pour ta réponse.
L'utilisation de cdate() fonctionne parfaitement. J'ai abandonné l'idée du simple clic pour rester sur le principe du double click, c'est encore le plus simple et comme je suis novice sur Excel, je ne souhaite pas complexifier les choses. Merci encore pour ton aide précieuse Cordialement |
|
|
Re: Format date MDF Xlcalendar dans Userform | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 18-08-2009 13h09
Bonjour Alragorn, le Forum,
Puisque la réponse apportée te convient, je clos le présent fil de discussions en le qualifiant [résolu]. Je te remercie d'y penser la prochaine fois (voir le lien dans ma signature). Bien cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
Qui consulte actuellement ce sujet ?
1 Utilisateur(s) anonymes