Recalcul du fichier de macro complémentaire

Fermé
Aminec4 - 8 déc. 2009 à 12:07
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 8 déc. 2009 à 20:04
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 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
8 déc. 2009 à 13:02
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
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 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
8 déc. 2009 à 13:24
Peut-être que si tu limites le Calculate à la plage qui est réellement à recalculer, ta macro tournera correctement.
0
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 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
8 déc. 2009 à 14:00
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
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 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
8 déc. 2009 à 20:04
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