Transformer date texte en nombre
Résolu
Co_nexion
Messages postés
333
Statut
Membre
-
Co_nexion Messages postés 333 Statut Membre -
Co_nexion Messages postés 333 Statut Membre -
Bonjour,
J'utilise le code ci-dessous pour que les chiffres rentrés dans une textbox se mettent en format date. Malheureusement c'est un format texte qui ne permet pas de faire de calcul, auriez vous une idée pour qu'il apparaisse de cette manière en format nombre ?
J'utilise le code ci-dessous pour que les chiffres rentrés dans une textbox se mettent en format date. Malheureusement c'est un format texte qui ne permet pas de faire de calcul, auriez vous une idée pour qu'il apparaisse de cette manière en format nombre ?
'Création d'un format Date "../../...."
Private Sub TextBox5_Change()
Dim Valeur As Byte
'Nb caractères maxi autorisé dans le textbox
TextBox5.MaxLength = 10
Valeur = Len(TextBox5)
If Valeur = 2 Or Valeur = 5 Then TextBox5 = TextBox5 & "/"
End Sub
5 réponses
-
Bonjour,
a valider des que vous avez atteint les 10 caracteres,
x = CDate(TextBox5.Text) et vous pouvez faire des calculs sur date -
Bonjour,
Il suffit d'affecter la valeur de TextBox5 à une variable de type Date
Sub test01()
Dim d As Date
'd = TextBox5.Text
d = "18/05/2012"
MsgBox Format(d, "dddd le dd Mmm yyyy")
End Sub -
Salut,
lorsque tu actives une cellule date dont la valeur se situe à gauche de ta cellule, regarde dans ta barre des formules si une appostrophe se trouve à gauche de la date.
exemple
'21/05/2012 -
Je pense que j'ai du rater quelque chose d'évident mais je n'y arrive vraiment plus à m'y retrouver... Je met mon code en entier et peut être trouverez vous le problème qui me fait défaut.
Merci de m'indiquer ou je me rate concernant la transformation du format date texte en format date nombre
'Bouton Validation Public Sub CommandButton1_Click() 'Demande de saisi si champ(s) non renseigné(s) If TextBox1 = "" Then MsgBox " Le prénom doit être saisi" TextBox1.SetFocus Exit Sub End If If TextBox2 = "" Then MsgBox "Le nom doit être saisi" TextBox2.SetFocus Exit Sub End If If TextBox3 = "" Then MsgBox "L'identifiant doit être documenté" TextBox3.SetFocus Exit Sub End If If TextBox5 = "" Then MsgBox "La date de début de contrat doit être saisie" TextBox5.SetFocus Exit Sub End If If TextBox6 = "" Then MsgBox "La date de fin de contrat doit être saisie" TextBox6.SetFocus Exit Sub End If If TextBox7 = "" Then MsgBox "La quotité doit être saisie" TextBox7.SetFocus Exit Sub End If 'Incremente automatiquement la ligne suivante Dim Ligne As Long Ligne = Sheets("CDD").[A65000].End(xlUp).Offset(1, 0).Row With Sheets("CDD") .Cells(Ligne, 1) = Me.TextBox1 .Cells(Ligne, 2) = Me.TextBox2 .Cells(Ligne, 3) = Me.TextBox3 .Cells(Ligne, 4) = Me.Label10 .Cells(Ligne, 5) = Me.TextBox4 .Cells(Ligne, 6) = Me.TextBox5 .Cells(Ligne, 7) = Me.TextBox6 .Cells(Ligne, 10) = Me.TextBox7.Value * 1 .Cells(Ligne, 11) = Me.TextBox8 .Cells(Ligne, 12) = Me.TextBox9 End With 'Efface les données des textboxs à la validation Dim ctrl As Variant For Each ctrl In Array(TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8) ctrl.Value = "" Next TextBox1.SetFocus 'Ferme le userform CDI et renvoi à l'accueil UserForm_CDDnew.Hide UserForm_Accueil.Show End Sub 'Bouton +1 'Même construction que bouton validation Public Sub CommandButton2_Click() 'Demande de saisi si champ(s) non renseigné(s) If TextBox1 = "" Then MsgBox " Le prénom doit être saisi" TextBox1.SetFocus Exit Sub End If If TextBox2 = "" Then MsgBox "Le nom doit être saisi" TextBox2.SetFocus Exit Sub End If If TextBox3 = "" Then MsgBox "L'identifiant doit être documenté" TextBox3.SetFocus Exit Sub End If If TextBox5 = "" Then MsgBox "La date de début de contrat doit être saisie" TextBox5.SetFocus Exit Sub End If If TextBox6 = "" Then MsgBox "La date de fin de contrat doit être saisie" TextBox6.SetFocus Exit Sub End If If TextBox7 = "" Then MsgBox "La quotité doit être saisie" TextBox7.SetFocus Exit Sub End If 'Incremente automatiquement la ligne suivante Dim Ligne As Long Ligne = Sheets("CDD").[A65000].End(xlUp).Offset(1, 0).Row With Sheets("CDD") .Cells(Ligne, 1) = Me.TextBox1 .Cells(Ligne, 2) = Me.TextBox2 .Cells(Ligne, 3) = Me.TextBox3 .Cells(Ligne, 4) = Me.Label10 .Cells(Ligne, 5) = Me.TextBox4 .Cells(Ligne, 6) = Me.TextBox5 .Cells(Ligne, 7) = Me.TextBox6 .Cells(Ligne, 10) = Me.TextBox7.Value * 1 .Cells(Ligne, 11) = Me.TextBox8 .Cells(Ligne, 12) = Me.TextBox9 End With 'Efface les données des textboxs Dim ctrl As Variant For Each ctrl In Array(TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8) ctrl.Value = "" Next TextBox1.SetFocus End Sub 'Bouton Annuler Private Sub CommandButton3_Click() 'Efface les données des textboxs Dim ctrl As Variant For Each ctrl In Array(TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8) ctrl.Value = "" Next TextBox1.SetFocus 'Ferme le userform CDI et renvoi à l'accueil UserForm_CDDnew.Hide UserForm_Accueil.Show End Sub 'Création d'un format Date "../../...." Private Sub TextBox5_Change() Dim Valeur As Byte 'Nb caractères maxi autorisé dans le textbox TextBox5.MaxLength = 10 Valeur = Len(TextBox5) If Valeur = 10 Then x = CDate(TextBox5.Text) End If If Valeur = 2 Or Valeur = 5 Then TextBox5 = TextBox5 & "/" End Sub 'Création d'un format Date "../../...." Private Sub TextBox6_Change() Dim Valeur As Byte TextBox6.MaxLength = 10 Valeur = Len(TextBox6) If Valeur = 10 Then x = CDate(TextBox6.Text) End If If Valeur = 2 Or Valeur = 5 Then TextBox6 = TextBox6 & "/" End Sub -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci à tous pour vos contributions, je change de voie et créer un calendar (bien plus ergonomique et pas tous ces problèmes) encore merci