Problème formatage texte d'une TextBox

floup -  
Iama Messages postés 324 Statut Membre -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

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

    eric
    0
    1. floup
       
      Parfait, merci beaucoup!!!
      0
  2. floup
     
    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
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Sans fichier on ne voit pas grand chose
      eric
      0
  3. Iama Messages postés 324 Statut Membre 14
     
    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
    0