WorksheetFunction avec 2 arguments

  • Initiateur de la discussion Christophe V.
  • Date de début
C

Christophe V.

Guest
Bonjour à tous. En ce premier janvier de l'an 2004, pour ceux qui n'ont pas trop fait la fête hier soir, voici un petit problème qui me turlupine:
Je voudrais créer une fonction dont les arguments sont deux matrices. Voici le code :

Function SommeDifCarre(Matrice1(), Matrice2()) As Double
answer = Application.WorksheetFunction.SOMME.XMY2(Matrice1(), Matrice2())
SommeDifCarre = answer
End Function

Apparemment l'objet WorksheetFunction marche avec un fonction à un seul argument (ex somme). Mais dès que j'utilise deux arguments (ex pente) #VALEUR! apparaît. Ou est mon erreur ?

Voilà C tout. J'espère que quelqu'un pourrat me venir en aide.

Merci d'avance.
 
M

michel

Guest
bonsoir Christophe

tu trouveras ci joint un exemple d'utilisation de la fonction Pente

Sub TestFonctionPente()
Range("A1") = Application.WorksheetFunction.Slope(Range("B1:B3"), Range("D1:D3"))
End Sub

bonne soirée
michel
lapin4.gif
 
R

Roland

Guest
Bonjour Christophe V.
Une bonne nouvelle et une moins bonne

La bonne cela fontionne sur 2 valeurs avec .SumXMY2
Function SommeDifCarre(a, b)
SommeDifCarre = Application.WorksheetFunction.SumXMY2(a, b)
End Function
a et étant 2 Range de la feuille =SommeDifCarre(G3;H3)

La moins bonne ce que je n'arrive pas à passer les matrice. Si on essaie comme cela =SommeDifCarre(G3:G9;H3:H9) elle retourne #VALEUR et il semble que la fonction ne soit plus scrutée sur un changement de valeur du tableau.

Je continue mes investigations, n'hésite pas à me tenir au courant des tiennes.
A+ Roland
 
C

Christophe V.

Guest
Je vois que Roland a bien cerné la problématique puisqu'il a bien pris en compte le cahier des charges et se confronte aux mêmes difficultés.

J'attend beaucoup de ses investigations. Mais je cherche toujours de mon coté.

A bientôt
 
R

Roland

Guest
Re
Les mystères de l'informatique ......

Cela fonctionne. J'avais délaissé qq minutes le problème et à la réouverture du classeur j'ai effacé mon ancienne cellule, j'ai saisie à nouveau et cela fonctionne

=SommeDifCarre(mat1;mat2) ' où mat1 et mat2 sous les plages de cellules nommées et de taille identique.

Function SommeDifCarre(a, b)
SommeDifCarre = Application.WorksheetFunction.SumXMY2(a, b)
End Function

J'espère que tu y parviendra également sinon le t'envoi le prog.

A+ Roland
 
C

Christophe V.

Guest
Ca marche !!! Merci Roland, Mission Completed.
En tous les cas j'ai vu mon erreur puisque j'utilisais la fonction en français. D'ailleurs C tu ou peut on trouver la traduction en anglais de toutes les fonction XL ?

Encore merci
 
J

Jean-Marie

Guest
Bonjour tout le monde

Christophe, le forum est un lieu de communication et libre d'accès à tout le monde. J'apprends énormément en lisant les autres fils, tu devrais faire de même.
Le 31 ce n'est pas vieux, Celeda a répondu à un post sur la traduction d'une fonction en anglais, et elle donne part la suite un lien sur un programme donnant la traduction des fonctions, voici le lien sur le fil http://www.excel-downloads.com/html... Bonne année, et bonne journée @+Jean-Marie
 

Statistiques des forums

Discussions
314 161
Messages
2 106 547
Membres
109 615
dernier inscrit
outhman