Problème formatage texte d'une TextBox

Bonjour,

J'ai un souci avec mon UserForm: j'ai des TextBox dans lesquelles des dates doivent être saisies. Je veux ensuite pouvoir trier mon tableau en fonction de ces dates.
Mon problème est pour formater le cellule remplie par le formulaire en date.
J'utilise le script suivant pour rajouter les "/" entre jour/mois/année:
Private Sub TextBox5_Change()
Dim Valeur As Byte

Valeur = Len(TextBox5)
If Valeur = 2 Or Valeur = 5 Then TextBox5 = TextBox5 & "/"
End Sub

Puis celui-ci pour formater le texte récupéré:
Range("E" & L).Value = Format(TextBox5, "dd/mm/yy")

Mais la cellule dans la feuille de calcul n'est pas reconnue comme une date et du coup je peux pas trier le tableau par cette colonne...

Je ne sais pas si je me suis bien exprimé, j'espère que l'un d'entre vous aura une solution à m'apporter!

Merci d'avance :)

3 réponses

  1. bonjour

    Eric à raison, mais à ton hasard

    If TextBox1 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label1.Caption) Else range("A" & L).Value = TextBox1

    Essaye
    If TextBox1 = vbNullString Then
    MessageBox ("Veuillez remplir la zone " & Me.Label1.Caption)
    Else
    range("A" & L).Value = TextBox1
    end if
    1. Je me permets de poser une autre question (différente mais portant sur le même code):
      J'aimerais tester que toutes les textbox sont remplies avant d'ajouter une nouvelle ligne à mon tableau mais lorsque je fais:

          If TextBox1 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label1.Caption) Else range("A" & L).Value = TextBox1
      If TextBox2 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label2.Caption) Else range("B" & L).Value = TextBox2
      If TextBox3 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label3.Caption) Else range("C" & L).Value = TextBox3
      If TextBox4 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label4.Caption) Else range("D" & L).Value = Format(Replace(TextBox4, ".", ","), "Currency")
      If TextBox5 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label5.Caption) Else range("E" & L).Value = CDate(TextBox5)
      If TextBox6 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label6.Caption) Else range("F" & L).Value = TextBox6
      If TextBox7 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label7.Caption) Else range("G" & L).Value = TextBox7
      If TextBox8 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label8.Caption) Else range("H" & L).Value = TextBox8
      If TextBox9 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label9.Caption) Else range("I" & L).Value = Format(Replace(TextBox9, ".", ","), "Currency")
      If TextBox10 = vbNullString Then MessageBox ("Veuillez remplir la zone " & Me.Label10.Caption) Else range("J" & L).Value = Format(Replace(TextBox10, ".", ","), "Currency")

      J'ai le message d'erreur "sub or function not defined" portant sur le "if textbox"
      Pourtant si j'enlève la condition et laisse uniquement l'instruction du else (range.value=textbox) tout marche bien, ce qui prouve que mes textbox sont bien déclarées...
      Je vois pas trop comment faire!

      Merci d'avance
      1. Contributeur
        Sans fichier on ne voit pas grand chose
        eric
    2. Contributeur
      Bonjour,

      essaie avec
      Range("E" & L).Value = cdate(TextBox5)

      eric
      1. Parfait, merci beaucoup!!!