BONJOUR LE FORUMBonjour le forum
Bonjour moulou
Sans le fichier (anonymisé), il sera difficile de te répondre.
Bonne journée à toutes & à tous
@+ Eric c
TextBox16 = Round(TextBox11.Value) / 5000 * 12 + 18
TextBox16 = Application.WorksheetFunction.Ceiling_Math(TextBox11.Value, 5000) / 5000 * 12 + 18
Bonjour dudu2,Bonjour,
Un exemple relevé dans ton code:
Cette fonction attend un Double en Arg1.VB:TextBox16 = Application.WorksheetFunction.Ceiling_Math(TextBox11.Value, 5000) / 5000 * 12 + 18
Tu lui passes un String.
Il faut lui passer CDbl(TextBox11.Value) en Arg1 à supposer que TextBox11.Value soit numérique.
D'autre part es-tu sûr de tes regroupements de chiffres dans / 5000 * 12 + 18 ?
La division sera faite par 5000 * 12 (60000) et 18 sera ajouté au résultat final.
Même si les priorités implicites s'appliquent il vaut toujours mieux parenthéser les calculs pour une bonne visibilité.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox2.Value = Round(TextBox1.Value) / 5000
TextBox3.Value = Round(Val(TextBox2.Value))
TextBox4.Value = TextBox3.Value * 12
TextBox5.Value = Val(TextBox1 - TextBox4) - 18
End Sub
If TextBox2 = "" Then TextBox2.Value = 0
TextBox16 = Application.WorksheetFunction.Ceiling_Math(TextBox11.Value, 5000) / 5000 * 12 + 18
If TextBox11 = 0 Then TextBox16 = 0