![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
<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> |
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
<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> |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|