1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

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

Discussion dans 'Forum Excel' démarrée par pduval34, 8 Février 2019.

  1. pduval34

    pduval34 XLDnaute Nouveau

    Inscrit depuis le :
    7 Mars 2008
    Messages :
    33
    "J'aime" reçus :
    0
    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:

    • TEST1.xlsm
      Taille du fichier:
      416.8 Ko
      Affichages:
      11
  2. Chargement...

    Discussions similaires - [RESOLU] format l'enregistrement Forum Date
    [Résolu] Format heure avec message d'erreur à l'enregistrement Forum Excel 1 Avril 2015
    extraire 1 ou 2 chiffres au format nombre [RESOLU] Forum Excel 6 Janvier 2019
    XL 2013 [Résolu] Format minutes et secondes dans textbox Forum Excel 28 Septembre 2018
    XL 2016 [RESOLU]Erreur à la sauvegarde au format excel Forum Excel 26 Juillet 2018
    XL 2016 [RESOLU]Format jjj jj mmmm aaaa issu d'un dtpicker dans excel Forum Excel 25 Juillet 2018

  3. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2600
    "J'aime" reçus :
    139
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    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
     
  4. pduval34

    pduval34 XLDnaute Nouveau

    Inscrit depuis le :
    7 Mars 2008
    Messages :
    33
    "J'aime" reçus :
    0
    Malheureusement l'ajout de cette ligne induit un bug avec comme message :
    Erreur d'éxécution '13' :
    Incompatibilité de type
     
  5. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2600
    "J'aime" reçus :
    139
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    Il faut qu'il y est une date en Textbox15 sinon faut tester
    Bruno
     
  6. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Bonsoir.
    Code (Visual Basic):
    If IsDate(TextBox15.Text) Then Ws.Cells(Ligne, 16) = CDate(TextBox15.Text) Else Ws.Cells(Ligne, 16) = Empty
     
  7. pduval34

    pduval34 XLDnaute Nouveau

    Inscrit depuis le :
    7 Mars 2008
    Messages :
    33
    "J'aime" reçus :
    0
    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.
     
  8. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14943
    "J'aime" reçus :
    925
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Avec cette fonction dans un module standard :
    Code (Visual Basic):
    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 (Text):
    Ws.Cells(Ligne, "L").Value = ValeurTBx(TextBox11, vbDate)
     

Partager cette page