Valeur Textbox en nombre VB

Résolu
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

  1. 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
    1. 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
  2. Contributeur
    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
    1. Merci beaucoup, ta solution marche!!!
      0
    2. Contributeur
      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
    3. Re,

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

      ;o)
      0
    4. Contributeur
      ha oui, c'est peut etre decimal, non ?
      0
    5. 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
  3. Bonjour,
    Je suppose que c'est de l'EXCEL, mais quelle Office?
    Comment vous chargez les variables mini et maxi?
    0