Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2011, 20h22   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Appel de fonctions personnalisées dans une autre fonction qui ne marche pas

Bonjour à tous,

Voila j'ai un soucis d'appel de fonctions dans des fonctions personnalisées. J'ai cherché dans tous les coins sur internet je n'ai pas réussi à trouver de réponses (ou alors j'ai mal compris).

D'un côté, j'ai des fonctions définies dans un module d'un classeur sauvé en .xla. Ces fonctions sont activées et marchent dans toutes mes autres feuilles de calcul. A savoir que ces fonctions sont bêtement des interpolations de tableaux 1d, tableaux déclarés et initialisés au début du module.
Là où ça se gâte : dans un second classeur (voué à rester un .xls lui) je souhaite définir des fonctions personnalisées faisant appel aux fonctions définies dans le .xla. Et là, tourne que tu tourneras, impossible de faire marcher le truc. J'ai mis les bouts de ode au bout du post pour les détails. J'ai déjà fait des fonctions qui en appellent d'autres situées dans le même module sans problème, là je ne sais pas si le problème vient juste du fait du stockage des fonctions dans 2 endroits différents ou non.

Alors, j'ai essayé de préciser "Public" pour les fonctions du .xla sans résultat, j'ai essayé en précisant l'adresse du fichier .xla ou juste son nom devant la fonction, sans résultat, j'ai tripatouillé des trucs avec Call mais je maîtrise pas des masses, ... bref, je suis perdu !
Si quelqu'un sait comment faire je suis preneur !

Merci à vous.



module du .xla contenant mes fonctions "de base" :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Option Explicit
Option Base 0
 
Dim tableau_a(10) As Array
...
tableau_a(0)=0
...
tableau_a(9)=0
 
...
Function fonction_de_base(x As Double) As Double
...
End Function


module du .xls contenant les fonctions "complexes" :

Code :
1
2
3
4
5
Function fonction_1(x As Double, ...) As Double
...
a = fonction_de_base(x)
...
End Function
valenton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 13h53   #2
Invité de passage
 
Inscription : octobre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 2
Points : 0
Points : 0
bon j'ai fini par trouver apres avoir bien galere. la syntaxe suivante marche :

Code :
1
2
 
a = Application.Run("classeur.xla!fonction_de_base", x)
en esperant quie ca serve a quelqu'un d'autre !
valenton est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h19.


 
 
 
 
Partenaires

Hébergement Web