Pb sur une fonction personalisée

  • Initiateur de la discussion Philoo
  • Date de début
P

Philoo

Guest
Bonjour à tous !
J'ai écrit une fonction personalisée, dont le prototype est :

Function maFonction(t_l As Range, t_c1 As Range, t_c2 As Range, val_l As Range, val_c1 As Range, val_c2 As Range)

Cette fonction me permet de rechercher une valeur dans un tableau (un peu comme une recherchev) en fonction de valeurs de la cellule active.
Bref, ce n'est pas le pb ici. Ah oui, encore une chose, les range dans lesquels on cherche la valeur sont situés sur d'autre calsseur ouverts.
ex. :
maFonction('MonClasseur.xls'!Feuil1!A1:Z1,
'MonClasseur.xls'!Feuil1!A1:A99,
'MonClasseur.xls'!Feuil1!B1:B99,
A8, B12, B13)
En gros, on cherche la cellule de la feuil1 du classeur MonClasseur, si les criteres A8, B12 et B13 sont vérifiés dans les tableaux fournis.


Ce qui m'embète, c'est que lorsque je lance les calculs (j'ai désactivé les calculs automatiques), parfois les cellules qui contienent la fonction sont calculées, parfois non !
Je n'ai pas encore compris....


Si quelqu'un sait dans quel cas Excel effectue les calculs des fonctions persos, ça m'arrangerai beaucoup merci !!

Philoo

P.S.: Si quelqu'un connait un site qui explique bien le rapport calculs/fonctions perso, ça serait le bienvenu également.
 
A

AlainP

Guest
Concernant les problèmes de calcul avec une fonction personnalisée, il ne faut pas omettre une petite ligne au début de la fonction :

Application.Volatile True

Sinon ta fonction ne sera pas systématiquement recalculer

Voila.
 
A

AlainP

Guest
Une fonctionpersonalisé est recalculée si un des déterminant direct change, par contre si c'est indirecte ca ne change pas (c'est de l'ampirisme).
Toutes mes fonctions personalisées déconnée avant que j'inserre la comande Application...

Rem : si tu l'utilise sur un fichier important tu auras peut etre un ralentissement.
 
P

Philoo

Guest
...en tout cas merci du tuyau : j'ai regardé dans l'aide de VBA et efectivement les fonctions perso ne portant pas cette instruction ne sont recalculées , je cite, "[...]qu'en cas de changement des variables d'entrée" !
Donc moi qui avait des range externes en variables , forcément, ça pouvait pas marcher !!

Décidément, ce forum m'aura sorti de beaucoup d'ennuis et plus d'une fois :) ...

A+
Philoo
 
A

AlainP

Guest
On peut peut etre optimiser la fontion en la compilant dans un fichier binaire (j'ai lu quelque chose à ce sujet) mais je suis incapable de le mener à bien. Si quelqu'un à une idée sur le methode je suis preneur ...
 

Statistiques des forums

Discussions
314 650
Messages
2 111 541
Membres
111 199
dernier inscrit
mavoungou regis