Parametre fonction VBA

alonsyl

XLDnaute Nouveau
bonjour,


je cre une fonction "=Interpolation($I$2;I35:I37;J35:J37;$I$13)" ou les 2d et 3eme parametres sont des plage de donnees.
mon code vba est le suivant :
Public Function Interpolation(AnneeCalcul As Long, RgAnnees As Range, RgValeurs As Range, TypeInterpolation As Byte)
...
End Function

le pbl c'est que lorsque j'ecris ma fonction de la maniere suivante : "=Interpolation($I$2;INDIRECT(A1);INDIRECT(A2);$I$13)" avec A1 = "I35:I37" et A2 = "J35:J37" ca ne fontionne plus du tout !

pourriez-cous me dire comment specifier les parametres de ma fonction VBA Interpolation() pour qu'elle accepte a la fois les reference J35:J37 mais aussi les reference indirectes INDIRECT(A1) ?

merci a vous,


alonsyl
 

Gael

XLDnaute Barbatruc
Re : Parametre fonction VBA

Bonjour Alonsyl, bonjour macsscam,

Même question que mon collègue car cela devrait marcher.

Ci-joint un exemple (appelé Interpol pour faire un peu James Bond :)) avec une fonction interpolation qui affiche un message avec toutes les cellules de la plage gérée par INDIRECT et renvoie le nombre de cellules de la plage.

@+

Gael
 

Pièces jointes

  • Interpol.xls
    18 KB · Affichages: 168
  • Interpol.xls
    18 KB · Affichages: 168
  • Interpol.xls
    18 KB · Affichages: 171

job75

XLDnaute Barbatruc
Re : Parametre fonction VBA

Bonjour à tous,

Extrait de l'aide Excel sur INDIRECT :

Renvoie la référence spécifiée par une chaîne de caractères. Les références sont immédiatement évaluées afin d'afficher leur contenu.

Mais en effet elle n'est pas évaluée dans une fonction qui nécessite une référence (LIGNE, COLONNE...).

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Parametre fonction VBA

Re,

Suite mon post précédent, plutôt que de déclarer les variables As Range, essayer en les déclarant comme tableaux :

Code:
Public Function Interpolation(AnneeCalcul As Long, RgAnnees(), RgValeurs(), TypeInterpolation As Byte)

Je suis intéressé, car je n'ai jamais fait ça.

A+

Edit : peut-être faut-il alors entrer la fonction dans la cellule sous forme matricielle, en validant par Ctrl+Maj+Entrée ???
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 796
Messages
2 092 205
Membres
105 273
dernier inscrit
elevea