Déclaration de variables sous VBA
Jenkza
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
Je vais prendre un exemple tout bête pour imager mon problème (qui n'en est pas un) :
Imaginons que je souhaite réaliser une petite fonction Excel qui permette de calculer une moyenne pondérée.
Je sais le faire sous excel directement sur la feuille avec sommeprod, mais je souhaiterais l'automatiser.
en clair, je voudrais que dans ma cellule je tape '=moyenne.pond.perso(plage)'
Le problème est que je ne sais pas comment déclarer ma plage dans la déclaration de mes variables pour que l'utilisateur puisse choisir la plage qu'il souhaite.
Je sais que c'est un truc tout bête mais bon...
Je vais prendre un exemple tout bête pour imager mon problème (qui n'en est pas un) :
Imaginons que je souhaite réaliser une petite fonction Excel qui permette de calculer une moyenne pondérée.
Je sais le faire sous excel directement sur la feuille avec sommeprod, mais je souhaiterais l'automatiser.
en clair, je voudrais que dans ma cellule je tape '=moyenne.pond.perso(plage)'
Le problème est que je ne sais pas comment déclarer ma plage dans la déclaration de mes variables pour que l'utilisateur puisse choisir la plage qu'il souhaite.
Je sais que c'est un truc tout bête mais bon...
A voir également:
- Déclaration de variables sous VBA
- Déclaration - Guide
- En plus des revenus, il ne faut surtout pas oublier de faire cette déclaration en ligne aux impôts - Guide
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum VB / VBA
1 réponse
Ton "truc tout bête" c'est compliquer, tu doit faire une fonction qui te calcul un résultat.
1°) Le nom que tu veux donner n'est pas valable, à la limite ce pourrait être
=Moyenne_Pond(A1:A30)
L'ossature de la fonction devrait être
A+
1°) Le nom que tu veux donner n'est pas valable, à la limite ce pourrait être
=Moyenne_Pond(A1:A30)
L'ossature de la fonction devrait être
Public Function Moyenne_Pond(Plage As Range) As Double
Dim Cel As Range, Resultat As Double
For Each Cel In Plage
'faire les tests et calculs ici
'pour avoir la valeur du résultat
Next Cel
Moyenne_Pond = Resultat
End Function
A+