Format nombre TextBox UserForm

Bonjour à tous,

Quand je saisi des nombres (avec ou sans virgule) dans mes TextBox les données retranscrites dans les cellules demandées sont au format texte et du coup sont inutilisables dans mes formules...

Auriez-vous une solution pour que ces nombres avec et sans virgules soient retranscrits au format nombre afin qu'ils puissent être utilisés dans mes formules?

Merci d'avance à tous.

Private Sub CommandButton1_saisie_Click()
Dim i As Integer, K As Integer, Colonne As Integer

  With Sheets("SAISIE M PLF395")
    For K = 1 To 12
      If Me.Controls("mois" & K) = True Then
        Colonne = K + 2
        For i = 1 To 34
          If Me.Controls("TextBox" & i) = "" Then
            Me.Controls("TextBox" & i) = .Cells(i + 1, Colonne)
             Me.Controls("textbox" & i).Value = ""
          Else
            .Cells(i + 1, Colonne) = Me.Controls("TextBox" & i)
            Me.Controls("textbox" & i).Value = ""
          End If
        Next i
        Exit For
      End If
    Next K
  End With
  If K > 12 Then
    MsgBox ("Merci de sélectionner un mois!")
  Else
    If MsgBox("Souhaitez-vous saisir l'affretement?", vbQuestion + vbYesNo + vbDefaultButton2, "Fin de saisie?") = vbYes Then Exit Sub
    Unload Me
  End If
End Sub

Private Sub CommandButton2_aff_Click()
Dim i As Integer, Colonne As Integer
Dim Ligne As Long

  For i = 1 To 12
    If Me.Controls("mois" & i) = True Then
      Colonne = i + 2
      Exit For
    End If
  Next i

  If Colonne = 0 Then
    MsgBox "Veuillez choisir un mois"
    Exit Sub
  End If

  For i = 1 To 14
    If Me.Controls("OptionButton" & i) = True Then
      Ligne = 33 + (i * 3)
      Exit For
    End If
  Next i

  If Ligne = 0 Then
    MsgBox "Veuillez choisir un transporteur"
    Exit Sub
  End If

  With Sheets("SAISIE M PLF395")
    For i = 35 To 37
      If Me.Controls("TextBox" & i) = "" Then
        Me.Controls("TextBox" & i) = .Cells(Ligne, Colonne)
         Me.Controls("textbox" & i).Value = ""
      Else
       .Cells(Ligne, Colonne) = Me.Controls("TextBox" & i)
       Me.Controls("textbox" & i).Value = ""
      End If
      Ligne = Ligne + 1
    Next i
  End With

  If MsgBox("Souhaitez-vous saisir un autre transporteur?", vbQuestion + vbYesNo + vbDefaultButton2, "Fin de saisie?") = vbYes Then Exit Sub
  Unload Me

End Sub

Bonjour

L'idée générale

Comme cela on peut saisir les nombres soit avec la virgule soit avec le point

Range("A1") = Val(Replace(Me.TextBox1, ",", "."))

Bonjour,

utilise une fonction de conversion "cdbl" :

.Cells(i + 1, Colonne) = CDbl(Me.Controls("TextBox" & i))

bon après midi

@+

Merci pour les réponses.

j'ai au début tenté la facilité avec le code de Pierrot93 mais quand je saisissais un point un message d’erreur apparaissait, je me suis donc un peu creusé la tête (merci Banzai64) et voila le résultat:

.Cells(i + 1, Colonne) = Val(Replace(Me.Controls("TextBox" & i), ",", "."))

ça fonctionne exactement comme je le souhaitais!!!

merci encore.

Rechercher des sujets similaires à "format nombre textbox userform"