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
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
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" ")
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