Bonjour,
J'ai un problème en VBA qui me prend la tête depuis hier.
Sur les lignes de code ci dessous, le programme marche très bien sauf lorsque la variable "dernierelignegeode" atteint un nombre supérieur à environ 22 000, un message apparait :
Voici le code :Erreur 13.Incompatibilité de type
Le message d'erreur apparait après le Next en gras.
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 Dim G As Range, K As Range, O As Range, var1, var2, var3, var4, var5, var6 Dim S1, S2, S3, S4, S5 As Long var2 = 1 var3 = 2 var4 = 3 var5 = 4 var6 = 5 Set G = Range("Regroupement!G3:G" & dernierelignegeode) Set K = Range("Regroupement!K3:K" & dernierelignegeode) Set O = Range("Regroupement!O3:O" & dernierelignegeode) For j = 3 To derniereligneprepplusop If (Range("V" & j).Value <> 0) Then var1 = Range("C" & j).Value S1 = 0 S2 = 0 S3 = 0 S4 = 0 S5 = 0 i = 1 For i = 1 To G.Count S1 = S1 + (G(i) = var1) * (K(i) = var2) * O(i) S2 = S2 + (G(i) = var1) * (K(i) = var3) * O(i) S3 = S3 + (G(i) = var1) * (K(i) = var4) * O(i) S4 = S4 + (G(i) = var1) * (K(i) = var5) * O(i) S5 = S5 + (G(i) = var1) * (K(i) = var6) * O(i) Next Range("E" & j).Value = S1 Range("F" & j).Value = S2 Range("G" & j).Value = S3 Range("H" & j).Value = S4 Range("I" & j).Value = S5 Else Range("E" & j).Value = "" Range("F" & j).Value = "" Range("G" & j).Value = "" Range("H" & j).Value = "" Range("I" & j).Value = "" End If Next
Les variables derniereligneprepplusop et dernierelignegeode sont définis en Long.
Merci de votre aide.
Cdlt,
Vincent
Partager