Fonction personnalisée et objet Range...

  • Initiateur de la discussion Initiateur de la discussion i0raek
  • 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 !

i0raek

XLDnaute Occasionnel
Fonction personnalisée et objet Range... [RESOLU]

Bonjour à tous,

Je souhaiterais utiliser la fonction mathématique produit qui intègre une boucle (produit de i = 1 à n de expression(i))... mais je ne crois pas que les fonctions classiques d'excel puissent satisfaire mon besoin. 😡

Ainsi, je pensais contourner le problème avec cette fonction :
Code:
Public Function FctProdFor(Plage As Range, Iteration As Integer) As Long

    FctProdFor = 1
    For i = 1 To Iteration
        FctProdFor = FctProdFor * (1 + Plage.Count(i).Value)
    Next
    

End Function

mais, excel ne me retourne que :
Erreur de compilation :

Nombre d'arguments incorrect ou affectation de propriété incorrecte
et surligne .Count(i) si j'écris : A1=FctProdFor(B1:B10;5)

et si je mets A1=FctProdFor("B1:B10";5), excel me renvoie #VALEUR!...

Si vous avez une solution, je suis plus que preneur !!!

Merci d'avance pour votre aide !
 
Dernière édition:
Re : Fonction personnalisée et objet Range...

Re,

en me replongeant dans le code de la fonction, j'ai trouvé l'erreur :

Code:
Public Function FctProdFor(Plage As Range, Iteration As Integer) As Variant

    FctProdFor = 1
    For i = 1 To Iteration
        FctProdFor = FctProdFor * (1 + Plage(i))
    Next
    

End Function

et il faut rentrer : A1=fctprodfor(B1:B10;2) (par exemple).

En espérant que ça pourra servir à quelqu'un !
 
Re : Fonction personnalisée et objet Range...

Bonjour.
Je n'ai pas tout compris, mais
il faut 1 : des "" pour la plage
2 pour parcourir un plage il faut utiliser .offset en référencant le début de plage
Public Function FctProdFor(Plage As Range, Iteration As Integer) As Long

FctProdFor = 1
For i = 1 To Iteration
FctProdFor = FctProdFor * (Plage.offset(i,0).Value)
Next


End Function

A1=FctProdFor("B1";5),
 
- 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

Discussions similaires

Réponses
2
Affichages
664
Réponses
11
Affichages
2 K
Réponses
6
Affichages
1 K
L
Réponses
2
Affichages
954
S
Retour