Localiser les param d'une fonction

  • Initiateur de la discussion Initiateur de la discussion Hichem
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

Hichem

Guest
<HTML>Bonjour,

Je vous présente mon problème:
J'ai un add-in qui contient un certain nombre de fonctions. Je veux déterminer la position d'un paramètre donné dans la liste des paramètres d'une fonction.
Exemple : Supposons qu'on a les fonctions suivantes:
-LibélléCompte(Compte) as String : fonction qui retourne le libellé d'un compte à partir du n° du compte,
-SoldeCompte(DateSolde,Compte) as double: fonction qui retourne le solde d'un compte à une date donnée.
La fonction à développer doit :
1-chercher les cellules qui contiennent un appel à l'une de ces deux fonctions,
2- Selon la fonction et selon la position du paramètre "compte", remplacer le contenu de la cellule passée en paramètre(qui présente le compte en question) par un nouveau numéro.
Donc, dans le cas suivant : $B$1=SoldeCompte($A$1,$A$2), la fonction cherche la position du paramètre compte(2ème param pour cette fonction), prend le contenu de $A$2 et le remplace par le nouveau n° de compte.
Par conséquent, $B$1 contiendra un nouveau résultat.
Merci d'avance.
J'espère que qcq pourra m'aider.</HTML>
 
<HTML>Bonjour,

voici une solution très très bâtarde je trouve.
à retenir surtout : la boucle sur les cellules contenant les formules

attention, j'ai mis aucune gestion d'erreur là-dedans, et cela suppose que les formules sur la feuille de calcul contiennent uniquement un numéro, ce numéro ne doit pas être donné par un calcul ou une autre référence.

pour envisager de pouvoir remplacer une référence, il faudrait des variables string au lieu des variables integer


Function test(anccompte As Integer, nvcompte As Integer)
For Each cl In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
If InStr(1, cl.Formula, "LibélléCompte") > 0 Then cl.Replace What:=anccompte, Replacement:=nvcompte ', SearchOrder:=xlByColumns, MatchCase:=True
If InStr(1, cl.Formula, "SoldeCompte") > 0 Then cl.Replace What:="," & anccompte & ")", Replacement:="," & nvcompte & ")" ', SearchOrder:=xlByColumns, MatchCase:=True


Next cl
ActiveSheet.Calculate
End Function


Sub kkk()
t = test(1, 5)

End Sub


pardonnez moi si vous trouvez ça trop bâtard

bye
stephane</HTML>
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
411
Retour