Excel VBA probleme variable Range fonction
Résolu
alkoyaya
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à vous,
Je suis étudiant et je galère pour réaliser une fonciton avec un range pour variable.
Apres de nombreux essais en tout genre suite à la lecture des forums je viens vers vous:
Voici mon probleme:
Je veux tout simplement faire un calcul grace a une fonction VBA que voici:
Public Function beta1an(Y As Range, Z As Range)
Dim Plage_calcul As Range
Set Plage_calcul = Range("Y" & ":" & "Z")
beta1an = WorksheetFunction.Average(Plage_calcul)
End Function
Dois-je initialiser les ranges? est ce un probleme de syntaxe de declaraton de variables?
Merci pour votre aide, je m'arrache un peu les cheveux depuis quelques heures!!
Alkoyaya
Je suis étudiant et je galère pour réaliser une fonciton avec un range pour variable.
Apres de nombreux essais en tout genre suite à la lecture des forums je viens vers vous:
Voici mon probleme:
Je veux tout simplement faire un calcul grace a une fonction VBA que voici:
Public Function beta1an(Y As Range, Z As Range)
Dim Plage_calcul As Range
Set Plage_calcul = Range("Y" & ":" & "Z")
beta1an = WorksheetFunction.Average(Plage_calcul)
End Function
Dois-je initialiser les ranges? est ce un probleme de syntaxe de declaraton de variables?
Merci pour votre aide, je m'arrache un peu les cheveux depuis quelques heures!!
Alkoyaya
Configuration: Windows XP Internet Explorer 7.0
4 réponses
-
Bonjour,
je pense que tu veux définir la plage de Y à Z.
Si c'est ça fais :Public Function beta1an(Y As Range, Z As Range) Dim Plage_calcul As Range Set Plage_calcul = Range(Y.Address & ":" & Z.Address) beta1an = WorksheetFunction.Average(Plage_calcul) End Functioneric -
Eh bien, si j'avais su que c'etait si simple....
Merci beaucoup, ca fonctionne parfaitement!
Pourrais-je cependant avoir une precision s'il vous plait:
Comment faire pour que le range selectionné ainsi soit fixe. Je me precise.
Je cherche à faire une opération sur le meme range (A1:A30) avec tout les jours l'insertion d'une ligne en haut de feuille, le range A1:A30 restant fixe(calcul de moyenne sur 1mois glissant). Or, et c'est logique, Excel decale automatique le Range en (A2:A31).
Derniere precision de taille: mettre des "$" ne change rien malheureusement!
En vous remerciant a nouveau, la encore jai perdu quelques cheveux!!!
Alkoyaya -
Comme tu dis : c'est logique...
Si c'est tjs la même plage pourquoi lui passer en paramètre la zone (en 2 variables en plus) et ne pas la mettre en dur dans la macro ?
Et d'ailleurs pourquoi faire une fonction personnalisée qui n'apporte aucune plus-value à la fonction moyenne() ?
Sinon pour fixer ta plage tu peux utiliser indirect :
=beta1an(INDIRECT("A1");INDIRECT("B5"))
eric -
Ah ben tant mieux.... :-)
Bonne continuation
eric