erreur 6 erreur de capacité

  • Initiateur de la discussion Initiateur de la discussion mowbray
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour