bonjour
lors de l'execution du code ci joint , j'ai le renvoi "erreur code 6 depassement de capacite avec arret sur la ligne suivante

pour info le contenu de certaines colonnes sont des nombres pouvant avoir des valeurs compris en 1 à 9999999

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
 UserForm1.TextBox1.Value = UserForm1.TextBox1.Value & "Il y a eu pour la valeur somme " & resultat(1, k) & "a été trouve " & (resultat(2, k) + resultat(3, k) + resultat(4, k)) & " :  " & " " & (FormatNumber((resultat(2, k) * 100) / (resultat(2, k) + resultat(3, k) + resultat(4, k)), 0)) & "%valeur < qui suivaient     " & (FormatNumber((resultat(3, k) * 100) / (resultat(2, k) + resultat(3, k) + resultat(4, k)), 0)) & " " & "%valeur = qui suivaient    " & (FormatNumber((resultat(4, k) * 100) / (resultat(2, k) + resultat(3, k) + resultat(4, k)), 0)) & "%valeur > qui suivaient " & vbCrLf




voici la totalise du code programme

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
Private Sub CommandButton1_Click()
 
 
Dim liste As New Collection
Dim i As Long, DerniereLigne As Long
Dim k, colonne As Variant
Dim nbinf, nbsup, nbegal As Long
Dim resultat() As Long
Dim typedepari As Integer
 
 
typedepari = 0
colonne = 0
 
 
 
 
If OptionButton1.Value = True And CheckBox1.Value = True Then typedepari = 5 ' quintesomme
If OptionButton1.Value = True And CheckBox2.Value = True Then typedepari = 55 ' quintemultiplication
 
If OptionButton2.Value = True Then typedepari = 4 'quarte
If OptionButton3.Value = True Then typedepari = 3 'tierce
 
 
 
Select Case typedepari
 
Case 5 'somme qunte
   'pour le quinte
    DerniereLigne = Range("j65536").End(xlUp).Row 'la somme des chx arrivee au quinte
    colonne = 10
 
Case 4
   'pour le quarte
    DerniereLigne = Range("k65536").End(xlUp).Row 'la somme des chx arrivee au quarte
    colonne = 11
Case 3
   'pour le tierce
    DerniereLigne = Range("l65536").End(xlUp).Row 'la somme des chx arrivee au tierce
    colonne = 12
 
Case 55 'multiplication
    'pour le quinte
    DerniereLigne = Range("m65536").End(xlUp).Row 'la somme des chx arrivee au quinte
    colonne = 13
 
 
 
 
 
End Select
 
 
 
 
On Error Resume Next
 
 
 
 
For i = 2 To DerniereLigne
    liste.Add Cells(i, colonne), CStr(Cells(i, colonne))
Next i
On Error GoTo 0
ReDim resultat(1 To 4, 1 To liste.Count)
For k = 1 To liste.Count
nbinf = 0
nbsup = 0
nbegal = 0
    For i = 2 To DerniereLigne - 1
        If Cells(i, colonne) = liste.Item(k) Then
            If Cells(i, colonne) > Cells(i + 1, colonne) Then nbinf = nbinf + 1
            If Cells(i, colonne) = Cells(i + 1, colonne) Then nbegal = nbegal + 1
            If Cells(i, colonne) < Cells(i + 1, colonne) Then nbsup = nbsup + 1
        End If
    Next i
    resultat(1, k) = liste.Item(k)
    resultat(2, k) = nbinf
    resultat(3, k) = nbegal
    resultat(4, k) = nbsup
Next k
 
 
    UserForm1.TextBox1.Value = ""
 
 
 
For k = 1 To liste.Count
 
  'UserForm1.TextBox1.Value = UserForm1.TextBox1.Value & "Il y a eu pour la valeur somme " & resultat(1, k) & " :" & " " & resultat(2, k) & " valeur < qui suivaient  " & resultat(3, k) & " " & " valeur = qui suivaient " & resultat(4, k) & " valeur > qui suivaient " & vbCrLf
' mettre en %
 
  'UserForm1.TextBox1.Value = typedepari
  UserForm1.TextBox1.Value = UserForm1.TextBox1.Value & "Il y a eu pour la valeur somme " & resultat(1, k) & "a été trouve " & (resultat(2, k) + resultat(3, k) + resultat(4, k)) & " :  " & " " & (FormatNumber((resultat(2, k) * 100) / (resultat(2, k) + resultat(3, k) + resultat(4, k)), 0)) & "%valeur < qui suivaient     " & (FormatNumber((resultat(3, k) * 100) / (resultat(2, k) + resultat(3, k) + resultat(4, k)), 0)) & " " & "%valeur = qui suivaient    " & (FormatNumber((resultat(4, k) * 100) / (resultat(2, k) + resultat(3, k) + resultat(4, k)), 0)) & "%valeur > qui suivaient " & vbCrLf
 
 
 
Next k 'Voila le contenu de ma colonne j

je comprends pas pourquoi l'erreur sur le textbox ??

merci de votre aide