Probleme d'espace pile insuffisant/ fonction qui ne s'itere pas

Résolu/Fermé
cartiers - Modifié par cartiers le 23/04/2013 à 10:24
 cartiers - 23 avril 2013 à 10:52
Bonjour,
Je viens de creer une fonction permettant de calculer une moyenne ponderee.
J'y fais appel dans deux procédures, l'une s'ouvrant automatiquement à l'activation de la page, l'autre en cliquant sur un bouton actualiser (pour refaire les calculs lors de chaque modification).
Mais excel me renvoie le message "espace pile insuffisant".
J'ai essayé de déboguer et je me suis aperçue que dans la fonction, la ligne reste figée à 4 (première valeur de k) sans arrêt.
Voici mon code, si qulqu'un veut bien prendre un peu de temps pour m'aider.
Merci d'avance (je débute encore en vba)
Private Sub Actualiser_Click() 
For k = 4 To 34 
Range("B" & k) = Moy_pond(k) 
Next 
End Sub 

Private Sub Worksheet_Activate() 
For k = 4 To 34 
Sheets("Notes_chap").Range("C" & k) = Sheets("chapitre 1").Range("H" & k + 4).Value 
Sheets("Notes_chap").Range("H" & k) = Sheets("chapitre 6").Range("H" & k + 4).Value 
Range("B" & k) = Moy_pond(k) 
Next 
End Sub 

Function Moy_pond(ligne) 
Set plage = Range(Cells(ligne, 3), Cells(ligne, 26)) 
Set coef = Range(Cells(2, 3), Cells(2, 26)) 
somme = Application.WorksheetFunction.SumProduct(plage, coef) 
c = 0 
For l = 3 To 23 
If Cells(ligne, l) <> "" Then 
c = Cells(2, l) + c 
End If 
Next 
Moy_pond(ligne) = somme / c 
End Function 






A voir également:

1 réponse

Ai trouvé l'erreur, bête.
Désolée du dérangement
0