Problème d'addition dans un TextBox

INFINITY100

XLDnaute Occasionnel
Bonjour à tous

Voila je suis face à un problème de calcul car dans un userform j'ai un Combobox qui contient des chiffres avec virgule et en second j'ai une textbox et une macro qui additionne le total à chaque changement sur combobox jusque la tout marche bien pour l'addition des chiffre sans virgule mais le problème c'est quand c'est avec virgule exemple si je sélectionne dans le combobox : 2 puis 3,5 le total donne 5 dans la textbox

donc ma question que faudrait-il modifier dans la macro pour résoudre ce problème

je joins le fichier pour être plus claire

Macro utiliser est :

Code:
Private Sub ComboBox1_Click()
If ComboBox1 > 0 Or Heures_Production_ComboBox = "" Then
TextBox1 = (CDbl(Val(TextBox1.Value) + CDbl(ComboBox1.Value)))
End If
End Sub

Merci à vous tous

Cordialement
 

Pièces jointes

  • Classeur1.xlsm
    15.9 KB · Affichages: 43

Papou-net

XLDnaute Barbatruc
Bonsoir INFINITY100,

Une proposition qui a le mérite de fonctionner sans erreur:

Private Sub ComboBox1_Change()
Dim cb As Double, tb As Double

If TextBox1 = "" Then tb = 0 Else tb = CDbl(TextBox1.Text)
cb = CDbl(ComboBox1.Value)
If cb > 0 Or Heures_Production_ComboBox = "" Then
TextBox1 = tb + cb
End If
End Sub​

Cordialement.
 

INFINITY100

XLDnaute Occasionnel
merci job ça marche à merveille aussi

Et là je suis face autre petit soucis d'une autre macro au faite j'ai la macro ci-dessous qui fonctionne bien seulement je veux la modifier de sorte qu'elle s'applique que sur les lignes remplies c'est à dire de la ligne A1 jusqu'à la dernière ligne renseignée et non 100 ou 200 etc

Voila la macro

Code:
Sub essai()
Dim Tabl(), i As Long
Tabl = Range("A1:A100")
For i = LBound(Tabl, 1) To UBound(Tabl, 1)
  Tabl(i, 1) = CDbl(Tabl(i, 1))
Next
Range("A1").Resize(UBound(Tabl, 1), 1) = Tabl
End Sub

J'ai essayé d'ajouter ce code mais ça fonctionne pas

Code:
Dim Derlig As Long
Derlig = Sheets("feuil1").Range("A" & Rows.Count).End(xlUp).Row
Tabl = Range("A1:A "Derlig" ")

Existe t-il une solution

Merci par avance
 

job75

XLDnaute Barbatruc
Re,
Code:
Sub essai()
Dim Tabl, i&
With ActiveSheet
  If .FilterMode Then .ShowAllData 'si la feuille est filtrée
  Tabl = .Range("A1", .Range("A" & .Rows.Count).End(xlUp)(2)) '(2) => au moins 2 éléments
  For i = 1 To UBound(Tabl) - 1
    If IsNumeric(CStr(Tabl(i, 1))) Then Tabl(i, 1) = CDbl(Tabl(i, 1))
  Next
  .Range("A1").Resize(i - 1) = Tabl
End With
End Sub
A+
 

Discussions similaires

Réponses
12
Affichages
394

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof