J'ai besoin de vos lumière pour un problème dans une fonction personnalisée. L'objet du post résume assez bien mon soucis...
En gros, j'ai une fonction de type :
Function Mafonction(argument1 As String, argument2 As Double) As String
Cette fonction doit dans un premier temps concaténer Arg1 et Arg2; et rechercher ensuite cette nouvelle chaine de caractère dans un autre onglet.
Problème : la valeur de Arg2 ne semble pas vouloir "monter" en mémoire et lorsque je concatène Arg1 + Arg2 j’obtiens toujours Arg1...
Plus bizarre : Lorsque j'éxécute ma fonction en mode pas à pas, je vois bien que Arg2 reste vide, donc la concaténation ne se fait pas. Mais lorsque j'arrête la macro manuellement, elle veut repartir au départ, mais cette fois elle charge Arg2 en mémoire mais pas arg1...
Re : Fonction personnalisée : un argument ne se charge pas en mémoire
Bonjour.
D'une façon générale, dans une fonction destinée à être utilisée dans des formules, évitez d'accéder à des cellules appartenant à des plages qui ne lui sont pas transmises parmi les arguments, surtout si elles contiennent des formules ! Ça peut, certes, parfois éviter la détection de références circulaires, mais ça ne peut pas pour autant permettre le calcul comme si elles n'existaient pas ! Et s'il n'y a pas de références circulaire, alors le fait de transmettre tous les antécédents garantit un ordre d'exécution correct des calculs d'évaluations.
Re : Fonction personnalisée : un argument ne se charge pas en mémoire
salut
d'accord avec Habitude quant aux types de variables
Essaie
Code:
Function Tend(clubo As String, lastjo As Range) as Long
Dim R As Range
Set R = Sheets("calendrier").[D:D].Find(clubo & CStr(lastjo))
Tend = IIf(R Is Nothing, "", R.Row + 11) 'nombre attendu ?
End Function