FormulaArray et tableau variable sous vba

mikil

XLDnaute Nouveau
Bonjour a tout le monde

Je butte sur un problème depuis pas mal de jours.
J'ai une Spreadsheet excel dans la quelle je loade une dll qui contient des fonctions particulières.
Une de ces fameuses fonctions(en l'occurence FonctionSpeciale ici) renvoie une matrice.

Dim RequestData As Variant
Dim Model As Variant
Dim Data As Variant
Dim Algorithm As Variant
dim RefValue as Variant
dim RefValue1 as Variant

RequestData = Range("RequestData").Value
Model = Range("Model").Value
Algorithm = Range("Algorithm").Value
Data = Range("Data").Value
RefValue1 = Range("RefValue1").Value

Feuil1.Range(Range("Matrix").Offset(1, 1), Range("Matrix").Offset(k, 3)).FormulaArray = "=FonctionSpeciale( RefValue , RequestData, Model, Data, Algorithm)"


le probleme vient du fait de RefValue est une matrice généré dynamiquement à l'intérieur du code ce n'est pas un objet range.

lorsque j'éxecute la macro j'obtiens des #NOM? partout dans ma matrice, et lorsque je fais la meme opération sur la spreadsheet en choisissant cette fois une range de meme taille que RefValue(RefValue1) ca marche.


Feuil1.Range(Range("Matrix").Offset(1, 1), Range("Matrix").Offset(k, 3)).FormulaArray = "=FonctionSpeciale( RefValue1 , RequestData, Model, Data, Algorithm)"

en fait cela ne m'arrange pas d'avoir sur la spreadsheet RefValue1 pour des raisons pratiques.

Merci D'avance
 

pierrejean

XLDnaute Barbatruc
Re : FormulaArray et tableau variable sous vba

Bonjour mikil

Personnellement , je ne vois pas d'autre solution que la modification de la fonction FonctionSpeciale en declarant RefValue en Paramarray (bien le mettre en dernier)
PS: Il y aurait aussi l'utilisation d'une feuille (eventuellement cachée ) servant de support au range RefValue
 

mikil

XLDnaute Nouveau
Re : FormulaArray et tableau variable sous vba

Bonjour pierrejean

Merci pour la réponse, en fait je n'ai pas la main sur cette fonction elle provient d'une xll que l'on as mis a ma disposition.

j'avais déjà pensé a cette solution(qui pour moi est mon dernier recours) mon idée c'était meme d'affecter le contenu de RefValue dans une range puis a partir de cette range que je nommerais par la suite RefValueBis faire une copie par valeur puis appliquer dessus ma fonction FonctionSpeciale puis effacer de ma feuille RefValueBis mais je trouve ca un peu limite, s'il n'ya vraiment pas d'autres solutions je le ferais, mais s'il y a plus simple franchement je suis preneur.

Merci encore pour ta réponse pierrejean
 

Discussions similaires

Réponses
12
Affichages
288

Statistiques des forums

Discussions
312 496
Messages
2 088 982
Membres
103 997
dernier inscrit
SET2A