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 SubBonjour
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.