Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb WorksheetFunction.Average()

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

F

Fredo

Guest
Bonjour a toutes et a tous.

Voila, je m'arrache les cheveux sur cette fonction.

Voila je souhaite simplement récupérer la valeur moyenne d'une plage dans un tableau de Single à 2 dimensions.

Voici la syntaxe:
Code:
tabRefGraph(i, 2) = xlApp.WorksheetFunction.Average(oRange.Range(oRange.Cells(iRowGraph, 10), oRange.Cells(iTmp, 10))) 'Bmax
tabRefGraph(i, 3) = xlApp.WorksheetFunction.Average(oRange.Range(oRange.Cells(iRowGraph, 16), oRange.Cells(iTmp, 16))) 'Bmoy+

oRange est une plage correspondant aux cellules visibles après un filtre auto et apparemment, les données de celle ci sont correctes (pour info environ 200,xx) d'après ce que je vois en mettant un point d'arrêt.

Mais la fonction WorksheetFunction.Average(...) me retourne une valeur d'environ 0.10... !!! :S

Je pense que ca peut peut etre venir d'un soucis de type de variable.. j'ai déjà essayé de passer le tableau en Double sans résultats.

Quel type de données retourne Average??

Si quelqu'un avait une sugestion ...

merci

Fredo
 
bonjour Fredo

la synthaxe que tu utilises semble correcte

as tu verifié les valeurs attribuées à iTmp et iRowGraph ?

as tu essayé de visualiser le résultat en utilisant une macro 'en dur' style

MsgBox xlApp.WorksheetFunction.Average(oRange.Range('J1:J10'))

tu pilotes Excel depuis une autre application ? comment déclares tu oRange ?


bon apres midi
MichelXld
 
Bonjour Michel, re le forum

Oui j'ai déjà testé enn 'dur' et le résultat était bien abérant.

Je pilote Excel depuis Access et la déclaration de oRange ce fait comme suit:
Code:
dim oRange as Excel.Range

De toute façon j'ai changé d'orientation dans mon application. Cette maudite fonction ne m'est plus utile. Mais c'est toujours très énervant de ce faire rouler dans la farine pas la machine !! :angry:

Merci quand même.

Fredo
 
rebonjour Fredo

Tant mieux si tu as pu te dépanner autrement .
Sinon, avais tu préalablement précisé le nom du classeur et le nom de la feuille ?

MsgBox xlApp.WorksheetFunction.Average(xlApp.Workbooks('monClasseur.xls').Sheets('nomDeLaFeuille').Range('J1:J10'))


bon apres midi
MichelXld
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…