comment faire un offset dans une fonction ?
Bonjour;
J'ai une function (code plus bas), qui extrait les ";" entre deux valeur dans une cellule excel.
Cette function travail a partir de plages nommées et fait la moyenne des valeurs (dans une autre colonne) en splitant les ";".
Toute fois, il faut que la/les plages nommées soit dans la colonne contenant les valeurs.
En considérant l'exemple suivant, plages nommées en colonne A et valeurs en colonne E, ne serait-il pas possible de créer un offset dans la function?
du style:
dim plage as name
for each plage in ActiveWorkBook
plage.offset(plage,4)
Voilà c'est une idée mais ça me marche pas et je suis débutant en VBA.
Si quelqu'un à une idée!
Merci par avance.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Function MoyenneChamp(champ As Range) As Double
Dim temp As Double, nb As Integer
temp = 0
nb = 0
For Each c In champ
If c <> Empty Then
If IsNumeric(Left(c.Value, 1)) Then
a = Split(c.Value, ";")
For i = LBound(a) To UBound(a)
temp = temp + Val(a(i))
nb = nb + 1
Next i
End If
End If
MoyenneChamp = temp / nb
Next c
End Function |
PS: je peux joindre éventuellement un exemple pour plus de clarté.