TextBox valeur en texte

Résolu/Fermé
lolo24150 Messages postés 39 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 4 mars 2017 - Modifié par lolo24150 le 19/04/2016 à 18:25
lolo24150 Messages postés 39 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 4 mars 2017 - 20 avril 2016 à 16:32
Bonjour,
J'apprends mais doucement le VBA.
J'aimerai lorsque j'enregistre mon formulaire que les valeurs mises dans les TextBox soient transformer au format numérique pour une utilisation avec formule après sur la feuille de données.Actuellement les données lors de l'enregistrement sont au format texte.
Ci-après le code:

Option Explicit
Dim Ws As Worksheet

Private Sub CommandButton1_Click()
'Pour le bouton Nouveau enregistrement
Dim L As Integer

If MsgBox("Confirmez-vous l’insertion de ce nouveau enregistrement ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then

L = Sheets("Données").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide

Range("A" & L).Value = Now
Range("B" & L).Value = ComboBox1
Range("C" & L).Value = TextBox7
Range("D" & L).Value = TextBox8
Range("E" & L).Value = TextBox1
Range("F" & L).Value = TextBox2
Range("G" & L).Value = TextBox3
Range("H" & L).Value = TextBox4
Range("I" & L).Value = TextBox5
Range("J" & L).Value = TextBox6
Range("L" & L).Value = TextBox9


End If
End Sub
Private Sub CommandButton2_Click()
'Pour le bouton Quitter
Unload Me
End Sub


Merci par avance.

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
19 avril 2016 à 18:51
Bonjour,

Pour transformer un texte en nombre tu disposes de plusieurs fonctions selon le format numérique désiré, les plus utiles dans ton cas :
- CLng Convertit en Entier long
- CDbl Convertit en Double (nombre standard double précision)

Mais il y a aussi
- CInt Convertit en Entier (... court)
- CSng Convertit en Simple (... précision)
- CCur Convertit en Devise (Monétaire)
- CDec Convertit en Décimal

Par exemple
  Range("E" & L).Value = CInt(TextBox1.Value)
1
lolo24150 Messages postés 39 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 4 mars 2017
20 avril 2016 à 13:19
Bonjour et merci pour ta réponse, cela marche mais si la Textbox est non remplie cela me met une erreur d’exécution type 13 sur la première des Textbox vide.
Également est-il possible d'avoir le même résultat final à l'enregistrement si on a les TextBox avec un nombre décimal avec un "." au lieu d'une ",".
Merci
Loïc
0
lolo24150 Messages postés 39 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 4 mars 2017
20 avril 2016 à 13:33
Bonjour, j'ai pu trouvé sur le forum pour transformer les points en virgule mais pour en cas de TextBox vide permettre l'enregistrement
Merci
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 20/04/2016 à 13:57
Bonjour,

Ça dépend de ce que tu veux comme nombre lorsque le textbox est vide !

pour avoir 0, il suffit d'écrire :
Range("E" & L).Value = CInt("0" & TextBox1.Value)
0
lolo24150 Messages postés 39 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 4 mars 2017
Modifié par lolo24150 le 20/04/2016 à 16:08
Bonjour,
Et si ma textbox est vide car il n' y a pas besoin de la remplir ?
Je souhaiterais qu'a l'enregistrement on enregistre rien.
0
lolo24150 Messages postés 39 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 4 mars 2017
20 avril 2016 à 16:32
Bonjour,
J'ai pu me débrouiller par formule après coup.
Une fois encore merci pour ta compétence et ton aide.
Cdlt.Loïc
0