Bonjour,

j'ai un userform qui reporte des tarif de matériel, et qui indique le total, mais autant le tarif matériel et précis, autant dans le total il apparait rapidement au bout de 2 ou 3 lignes une inexactitude de l'ordre de plusieurs centimes à force de travailler dessus le code je finis par ne plus y voir clair !!! alors si une âme charitable et capable de me trouver l'erreur je suis preneur !!!

Et si quelqu’un à aussi une idée pour que quand je remets à zéro les champs la première combobox Diamètre ce remettent à zéro aussi (notamment quand j'ajoute une ligne cela ce remet à zéro sauf cette combobox) (une partie du code appartient à Jacques Boisgontier pour les combobox en cascades)

Merci bcp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Private Sub B_Ajouter_Click()
Dim Val1 As Variant
Dim Val2 As Single
 
 
If TextBoxNbElts = "" Then TextBoxNbElts = 1
 
 
If ResumMatos.ListCount = 0 Then
        i = 0
    Else
 
        ResumMatos.Selected(ResumMatos.ListCount - 1) = True
        Val1 = UserForm1.ResumMatos.List(ResumMatos.ListIndex, 9)
        ResumMatos2.Selected(ResumMatos2.ListCount - 1) = True
        Val1bis = UserForm1.ResumMatos2.List(ResumMatos2.ListIndex, 1)
        ResumMatos.RemoveItem (ResumMatos.ListIndex)
        ResumMatos2.RemoveItem (ResumMatos2.ListIndex)
        i = ResumMatos.ListCount   ' - 2
    End If
 
    Val2 = Left(TextBox2.Value, 4)
    'Val2bis = Left(TextBoxNbElts.Value, 4)
    Val3 = Left(Val1, 4)
    Val3bis = Left(Val1bis, 4)
 
    'MsgBox "Val2 =  " & Val2 & "  Val3 =  " & Val3
    If Val3 <> "" Then
        TotalPrix = CSng(Val2) + CSng(Val3)
        TotalPrixBis = CSng(Val2) * CSng(TextBoxNbElts) + CSng(Val3bis)
    Else
        TotalPrix = CSng(Val2)
        TotalPrixBis = CSng(Val2) * CSng(TextBoxNbElts)
    End If
    'MsgBox " TotalPrix =  " & TotalPrix
    'TotalPrix = Format(TotalPrix, "0.00" & " €")
    'MsgBox "Val1  " & Val1 & "  " & TextBox2
 
    Me.ResumMatos.AddItem
    Me.ResumMatos.List(i, 0) = ComboBox1
    Me.ResumMatos.List(i, 1) = ComboBox2
    Me.ResumMatos.List(i, 2) = ComboBox3
    Me.ResumMatos.List(i, 3) = ComboBox4
    Me.ResumMatos.List(i, 4) = ComboBox5
    Me.ResumMatos.List(i, 5) = TextBox1
    Me.ResumMatos.List(i, 6) = TextBox3
    Me.ResumMatos.List(i, 7) = TextBox4
    Me.ResumMatos.List(i, 8) = TextBox5
    Me.ResumMatos.List(i, 9) = Format(TextBox2.Value, "0.00" & " €") 'Val(TextBox2)
 
    Me.ResumMatos2.AddItem
    Me.ResumMatos2.List(i, 0) = TextBoxNbElts
    Me.ResumMatos2.List(i, 1) = Format(TextBox2.Value, "0.00" & " €") * TextBoxNbElts
 
    a = i + 1
    Me.ResumMatos.AddItem
    Me.ResumMatos.List(a, 8) = "Total : "
    Me.ResumMatos.List(a, 9) = TotalPrix 'TotalPrix
 
    Me.ResumMatos2.AddItem
    Me.ResumMatos2.List(a, 1) = TotalPrixBis
 
 
      Set MonDico = CreateObject("Scripting.Dictionary")
  For Each C In f.Range("A4:A" & f.Range("A" & Rows.Count).End(xlUp).Row)
     If C = Me.ComboBox1 Then MonDico(C.Offset(, 1).Value) = ""
  Next C
  temp = MonDico.keys
  Call Tri(temp, LBound(temp), UBound(temp))
  Me.ComboBox2.List = temp
  Me.ComboBox2 = ""
  Me.ComboBox3.Clear
  Me.ComboBox4.Clear
  Me.ComboBox5.Clear
  raz
  TextBoxNbElts.Value = ""
Tarif Materiel Pipe - Testl.xlsm