Bonjour à tous,
Voici mon problème (Excel 2003 pour Windows XP) :
Je veux créer une matrice dans VBA pour reproduire k tableaux de i lignes et de j colonne sur h feuilles.
Premièrement, j'insère les "dit" tableaux dans la matrice C() (première partie du code). (ça fonctionne, car j'ai essayé de les imprimer dans des cellules et ça fonctionne).
Deuxièmement, (et c'est là que ça plante) je veux créer une matrice M() qui sera le résultat d'opérations sur C(). Par contre, lorsque je mets mon nombre de tableaux plus grand que 3 (k), ça me dit "Dépassement de capacité". Mes opérations sont sur des milliards.
J'espère que j'ai été assez clair.
Merci d'avance
Xanthar
Voici mon problème (Excel 2003 pour Windows XP) :
Je veux créer une matrice dans VBA pour reproduire k tableaux de i lignes et de j colonne sur h feuilles.
Premièrement, j'insère les "dit" tableaux dans la matrice C() (première partie du code). (ça fonctionne, car j'ai essayé de les imprimer dans des cellules et ça fonctionne).
Deuxièmement, (et c'est là que ça plante) je veux créer une matrice M() qui sera le résultat d'opérations sur C(). Par contre, lorsque je mets mon nombre de tableaux plus grand que 3 (k), ça me dit "Dépassement de capacité". Mes opérations sont sur des milliards.
Code:
Dim C() As Double
Dim M() As Double
Dim h, k, i, j As Double
ReDim C(4, 12, 16, 9)
ReDim M(4, 12, 16, 9)
'réclamations, couts et membres par région
For h = 1 To 1
If h = 1 Then
MySheet = "RJTL"
ElseIf h = 2 Then
MySheet = "RITL"
ElseIf h = 3 Then
MySheet = "OBRJTL"
ElseIf h = 4 Then
MySheet = "OBRITL"
End If
For k = 1 To 12
For i = 1 To 16
For j = 1 To 9
If k = 4 Then
C(h, k, i, j) = 0
Else
C(h, k, i, j) = Worksheets(MySheet).Cells(i + 7 + k * 45, j + 1).Value
End If
Next j
Next i
Next k
Next h
'***
'rates par région
'h = type de soins
'k = # région
For h = 1 To 1
For k = 1 To 4
For i = 1 To 16
For j = 1 To 3
If i = 15 Then
M(h, k, i, j) = 0
Else
If j = 3 Then
M(h, k, i, j) = ((C(h, k, i, j - 2) + C(h, k, i, j - 1)) / 9) / C(h, k, i, j + 6)
Else
M(h, k, i, j) = (C(h, k, i, j) / 9) / C(h, k, i, j + 6) '///*** ça plante ici ***///
End If
End If
Next j
Next i
Next k
Next h
'***
J'espère que j'ai été assez clair.
Merci d'avance
Xanthar