erreur 6 erreur de capacité

M

mowbray

Guest
tout nouveau en VBA je tombe a priori dans tout les piéges. notamant là je suis piégé par un dépassement de capacité dont je ne sais pas d'où il sort ni pourquoi.
J'ai une fonction et deux arguments variables dans ma feuille de calcul et a priori il y en a un de trop et le fait qu'ils soient variables pose un PB. (lorsque je défini ces variables ou bien que j'en enléve une le PB se régle de lui même).
quelqu'un pourait il m'expliquer ce qui se passe

Sub significativité()
'test si la différence de deux pourcentages est significative
nb1 = 102
nb2 = 100

For j = 3 To 8 Step 2
For i = 10 To 18

'calcul du t de student

'probabilité associée à la série1
P1 = Cells(i, j).Value
'probabilité associé à la série2
P2 = Cells(i, j + 1).Value

a = ((nb1 * P1) + (nb2 * P2)) / (nb1 + nb2)

q = Sqr((a * (100 - a)) * ((1 / nb1) + (1 / nb2)))


t = (P1 - P2) / q =>ligne ou apparait le débogueur


'Comparaison de la valeur de fisher avec l'interval indiquant le niveau de significativité requi

If t < -1.64 Then
Cells(i, j).Interior.ColorIndex = 5
End If

If t > 1.64 Then
Cells(i, j).Interior.ColorIndex = 5
End If

If t < -1.96 Then
Cells(i, j).Interior.ColorIndex = 7
End If
 

Pièces jointes

  • source.xls
    42 KB · Affichages: 52
  • source.xls
    42 KB · Affichages: 51
  • source.xls
    42 KB · Affichages: 53
S

sylsyl

Guest
Salut mowbray,

j'ai essayer ta procedure. Il semblerait que l'erreur 6 apparaisse quand ta variable "q" est nul, un matheu comme toi doit savoir qu'on ne peut (dan la pratique) diviser par 0.

Ca m'est arrive quand j'ai (volontairement) mis des cellule vides en entrees, on a alors P1 et P2 ="Null", d'ou a = 0 puis q = 0.

Je pense que tu as du faire une erreur de ce type surtout avec "j" qui est dans une drole de boucle:

j = 3 To 8 Step 2 alors "j" prend les valeurs : 3, 5 et 7 alors pourquoi mettre "To 8" ?

A++, Sylsyl.
 
M

mowbray

Guest
je me suis effectivement rendu compte de ta remarque en plus d'etre un programeur débutant je me révele un pietre matheux.
J'ai essayer de résoudre le Pb en mettant une fonction If tel que:
If cells(1).value = "" then
If cells(2).value = "" then
next i

ça na pas marché j'ai alors remplacé Next i par i=i+1
ça a l'air d'aller mieux mais ce n'est pas encore tt à fait ça (pas de message d'erreur mais rien ne se passe)
en tout cas je continue à bidouiller et si décidément je n'arrive à rien je repasserai par le forum

En tout cas je te remercie de ta réponse
 

Discussions similaires

Statistiques des forums

Discussions
312 967
Messages
2 094 030
Membres
105 920
dernier inscrit
SAUSSARd