Recalcul du fichier de macro complémentaire

Aminec4 -  
Gord21 Messages postés 928 Statut Membre -
Bonjour,
Voici mon petit souci :

Je veux utiliser une bibliothèque à travers une macro complémentaire, le problème est que dans le corps VBA de ma macro complémentaire, j'ai besoin d'un élément que saisie l'utilisateur comme argument de de cette fonction pour pouvoir faire le calcul sur ma feuille (qui se trouve dans la macro complémentaire) et retourner le résultat.

petit exemple pour illustrer ceci.

Supposons que ma macro complémentaire est comme suit:

<code>Public Function Fact_escompte(Taux_i)

Workbooks("Calcul.xla").Worksheets("Feuil").Cells(6, 4) = Taux_i

Application.Calculate

Fact_escompte = Workbooks("Calcul.xla").Worksheets("Feuil").Cells(10, 9)

<code>End Function

Vous aurez bien évidemment compris que la ou les formules de calculs se trouvent sur la feuille de calcul du ficher de ma macro complémentaire, et qu'il m'est très difficile de les mettre dans la macro.

Merci pour votre aide
A voir également:

4 réponses

Gord21 Messages postés 928 Statut Membre 289
 
Bonjour,
Je ne sais pas exactement à quel niveau tu rencontres ton problème, mais si ça peut t'aider, tu peux demander le taux à l'utilisateur par l'intermédiaire d'un InputBox.
0
Aminec4
 
le problème réside dans le fait que quand il arrive au niveau de la ligne ou il va insérer le taux dans la cellule de la feuille inclus dans le fichier source de la macro complémentaire, la macro s'arrête toute seule.

ce qui fait que je ne peux pas changer le paramètre taux dans la feuille de ma macro complémentaire pour refaire le calcul et redonner le résultat.

le problème de l'input box serait le même, puisque à partir du moment ou je prend la valeur entrée par l'utilisateur et que je veuille la mettre dans la feuille de calcul , il fera exactement la même chose.
0
Gord21 Messages postés 928 Statut Membre 289
 
Peut-être que si tu limites le Calculate à la plage qui est réellement à recalculer, ta macro tournera correctement.
0
Aminec4
 
Le souci c'est qu'il n'arrive même pas au niveau de Calculate , il s'arrête net au moment de l'attribution du taux à la cellule
0
Gord21 Messages postés 928 Statut Membre 289
 
Tu peux essayer Application.EnableEvents = False en début de fonction puis Application.EnableEvents = True avant de sortir. Sinon, en passant par un fichier intermédiaire qui serait la copie de ton classeur.
0
Aminec4
 
la méthode Application.EnableEvents n'a malheureusement pas marché :(

Je suppose qu'avec un fichier intermédiaire comme tu l'as décris devrait marcher, mais c'est vrai que ce n'est pas super pratique...

Merci en tout cas pour ton aide Gord21
0
Gord21 Messages postés 928 Statut Membre 289
 
Bonsoir,
Après vérification, je pense savoir d'où vient le problème : Function. Une fonction ne peut être utilisée pour manipuler des objets (cellules, mises en formes, ...), elle se contente de retourner une valeur. Il faut donc réécrire ta macro en passant par des procédures ou en intégrant tes calculs dans ta fonction (toutes les fonctions Excel sont accessibles depuis les macros). Si tu as besoin d'aide, tu peux mettre ton fichier en lien.
0