XL 2010 [RESOLU] Pb de format à l'enregistrement d'une date dans un Formulaire !

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 !

pduval34

XLDnaute Nouveau
Bonsoir,

Pour un fichier de randonnées (cf fichier joint), j'ai finalisé un formulaire me permettant d'avoir pour chaque randonnée un bon visuel sur les commentaires photos, profil, etc...
Mais, c'est à l'usage que l'on découvre les bugs !!

J'en ai corrigé certains, mais il m'en reste un dernier que je n'arrive pas à solutionner.

Sur la colonne "L", j'ai des dates qui lorsque l'on valide un enregistrement bascule en format texte.
Pour essayer de régler le problème, j'ai déclaré pour cette colonne que le format serait une date : .NumberFormat = "dd/mm/yy"
Résultat : si dans la date, le jour est :
- < à 12 elle se retrouve bien en date mais au format mm/dd/yy
- > à 12 il reste en format texte !
J'ai essayé d'autres méthodes, mais là c'était toutes les autres dates qui étaient modifiées....
Quelle solution ?
Une âme généreuse pourrait, s'il vous plait, me débloquer cette situation pénible ?
Remerciements anticipés.
 

Pièces jointes

Bonsoir,
Les dates d'un textbox doivent être traitées pour quelles soient prisent comme des dates.
La méthode est la cellule =Cdate(monTextBox) si le textbox a bien une date sinon bug.
Dans la macro le plus simple est de mettre(ajouter la ligne en rouge)
For I = 1 To 22
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I)
End If
Next I
Ws.Cells(Ligne, 16) = cdate(TextBox15)
Pas besoin du format dans la macro
Bruno
 
Merci beaucoup,

C'est de ma faute, la dénomination de mes champs prête à confusion : la colonne qui correspond à la TextBox15 "Dates" n'est le plus souvent pas une date (c'est du texte (correspond aux antériorités de réalisation de la balade : ex. "2005, mai 2008, 4/5/12".
La colonne qui me posait problème est la colonne "L" Date (sans "s") cad la Textbox 11 où là il n'y a que des dates au format date !!
Votre proposition y fonctionne parfaitement.
Par sécurité, j'ajoute la ligne que vous venez de me proposer !!
Bonne soirée.
 
Avec cette fonction dans un module standard :
VB:
Public Function ValeurTBx(ByVal TBx As MSForms.TextBox, _
    Optional ByVal TypeDon As VbVarType = vbDouble)
On Error Resume Next
If TBx.Text = "" Then
    ValeurTBx = Empty
ElseIf TypeDon = vbDate Then
    ValeurTBx = CDate(TBx.Text)
ElseIf TypeDon = vbString Or Not IsNumeric(TBx.Text) Then
    ValeurTBx = TBx.Text
ElseIf TypeDon = vbCurrency Then
    ValeurTBx = CCur(TBx.Text)
Else
    ValeurTBx = CDbl(TBx.Text)
    End If
End Function
Vous pouvez aussi faire, maintenant :
Code:
Ws.Cells(Ligne, "L").Value = ValeurTBx(TextBox11, vbDate)
 
- 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
4
Affichages
322
Retour