Bonjour à tous !
J'ai débuté VBA hier (je pars absolument de 0 !) et je bloque déjà sur un petit exercice. Pourriez-vous m'aider à comprendre pourquoi ça ne marche pas s'il vous plait ?
Les données :
Je dispose d'une plage X de notes, il a 2 lignes et 2 colonnes.
J'ai une plage N de coefficients, 2 lignes 2 colonnes aussi
Et je dois créer une fonction sous VBA me calculant la moyenne arithmétique avec ces deux tableaux.
Il nous a été demandé d'inclure dans la fonction un test pour vérifier que le nombre de lignes et de colonnes sont compatibles.
On doit également utiliser les fonction Range.Count etc
Il doit y avoir un moyen de le faire plus vite, mais là on est encadré sur le cheminement pour intégrer des notions je pense.
Voici mon programme (c'est la dernière des 35 versions que j'ai testées )
Le message d'erreur qui apparait me dit : "Référence de variable de contrôle incorrecte dans Next"
Ca serait très gentil si quelqu'un pouvait m'aider, je galère depuis des heures...
J'ai débuté VBA hier (je pars absolument de 0 !) et je bloque déjà sur un petit exercice. Pourriez-vous m'aider à comprendre pourquoi ça ne marche pas s'il vous plait ?
Les données :
Je dispose d'une plage X de notes, il a 2 lignes et 2 colonnes.
J'ai une plage N de coefficients, 2 lignes 2 colonnes aussi
Et je dois créer une fonction sous VBA me calculant la moyenne arithmétique avec ces deux tableaux.
Il nous a été demandé d'inclure dans la fonction un test pour vérifier que le nombre de lignes et de colonnes sont compatibles.
On doit également utiliser les fonction Range.Count etc
Il doit y avoir un moyen de le faire plus vite, mais là on est encadré sur le cheminement pour intégrer des notions je pense.
Voici mon programme (c'est la dernière des 35 versions que j'ai testées )
Le message d'erreur qui apparait me dit : "Référence de variable de contrôle incorrecte dans Next"
Function moyarit(X As Range, N As Range) As Double
Dim c As Integer
Dim l As Integer
Dim i As Integer
Dim j As Integer
Dim moy As Double
Dim k As Integer
Dim coeff As Integer
c = X.Columns.Count
l = X.Rows.Count
moy = 0
coeff = 0
Select Case True
Case (X.Rows.Count = N.Rows.Count And X.Columns.Count = N.Columns.Count)
For i = 1 To l
For j = 1 To c
moy = (moy + X.Cells(i, j) * N.Cells(i, j))
Next i
Next j
End Select
For i = 1 To l
For j = 1 To c
coeff = coeff + N.Cells(i, j)
Next i
Next j
moyarit = moy / coeff
End Function
Ca serait très gentil si quelqu'un pouvait m'aider, je galère depuis des heures...