Valeur Textbox en nombre VB

Résolu
pampiou Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'utilise une interface composée de deux textbox pour saisir les valeurs mini et maxi. Seulement, quand je valide, les nombres copiés dans les cases de la feuille Excel ne sont pas au format nombre. Je souhaiterais donc que ma macro mette automatiquement le format en nombre. Pour l'instant, mon code est :

Private Sub validation_Click()
If mini <> "" Then Sheets("Couples de serrage").Cells(25, "N") = mini
Sheets("Couples de serrage").Cells(25, "N").NumberFormat = "0"
If maxi <> "" Then Sheets("Couples de serrage").Cells(31, "N") = maxi
Sheets("Couples de serrage").Cells(31, "N").NumberFormat = "0"
Unload Spec
End Sub

Le problème est que ça ne marche pas. J'utilise ces cases pour tracer des courbes ensuite, et les graphiques ne se mettent pas à jour. Si je règle le format à la main, ça marche, mais pas avec la macro. Je sais que pour mettre en format texte, il faut faire trim(blablabla), mais pour le format nombre, je ne sais pas.

Merci d'avance pour vos réponses. Bonne journée à tous.

Pampiou.

3 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour le forum,

En VB on utilise les fonctions CInt(), CDble() etc pour convertir des variables, ce qui correspond à int et float ici, en C ou C++ ...

If mini <> "" Then Sheets("Couples de serrage").Cells(25, "N") = CInt(mini)

;o)
3
pampiou Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
En fait oui, tu as raison.
J'avais utilisé la méthode de Nabla's mais en mettant double à la place de float.

Ceci dit, les conversions, comme le Cdbl, sont bien pratiques. MERCI!!!
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
essayes de faire un
dim nb_temp as float.

tu mets ta valeur la dedans

et ensuite, tu envoies cette variable dans ta case....

il doit y avoir une fonction qui converti directement, mais la peux pas tester (essayes float (valeur) )
1
pampiou Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup, ta solution marche!!!
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
jettes un oeil sur les fonctions décrites par polux31, ce sont les fonctions que je cherchais je pense... c'est plus propre que la solution que je t'ai donné
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Re,

Je doute fort que Dim nb_temp As float soit compatible en VB.

;o)
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
ha oui, c'est peut etre decimal, non ?
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
C'est Double en VB l'équivalent de float pour les nb décimaux et Integer l'équivalent de int pour les entiers.

Il faut déclarer: Dim nb As Double ou Dim nb As Integer.

;o)
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,
Je suppose que c'est de l'EXCEL, mais quelle Office?
Comment vous chargez les variables mini et maxi?
0