Déclaration de variables sous VBA
Jenkza
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
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
- Incompatibilité de type vba ✓ - Forum Excel
- Vba range avec variable ✓ - 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+