Bonjour,
J'ai créé des fonctions personnalisées et je souhaiterais qu’en insérant la fonction dans la feuille de calcul une info-bulle avec les arguments soit affichée comme pour les fonctions standards d'Excel.
Merci
Bonjour,
J'ai créé des fonctions personnalisées et je souhaiterais qu’en insérant la fonction dans la feuille de calcul une info-bulle avec les arguments soit affichée comme pour les fonctions standards d'Excel.
Merci
Salut,
Pour ajouter des descriptifs à une fonction personnalisée, il faut utiliser la méthode MacroOptions de l'objet Application.
Un petit lien et un exemple d'utilisation.
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Public Sub AjouterDescription() With Application Dim ArgumentDescription() As String ArgumentDescription(0) = "Argument 1" ArgumentDescription(1) = "Argument 2" '... 'Pour avoir l'ensemble des éléments Utiliser l'aide et chercher MarcoOptions .MacroOptions "NomFonction", "Description", , , , , , , , , ArgumentDescriptions End With End Sub
Bonjour John,
Merci pour cette information.
L'exemple donné ne fonctionne pas car il y a trop d'arguments (11) alors que ma version n'en accepte que 10 (le dernier est le nom du fichier d'aide) comme indiqué sur la capture d'écran:
Je précise la version utilisée d'Excel 2007 (12.0.6780.5000) SP3 MSO (12.0.6777.5000).
Avez-vous une autre piste?
Merci et bonnes fêtes de fin d'année.
Salut,
C'est la seule solution (que je connaisse) pour reproduire les fonctionnalités natives des formules d'Excel. Et à mon humble avis, si cette fonction doit être utilisé par des personnes autres que toi, il te reste deux solutions :
- Soit prévoir un manuel externe à la fonction pour l'utilisateur. Ce qui risque d'être perturbant pour des utilisateurs peu à l'aise avec l'outil.
- Soit tu postes ton code et on voit si l'on ne peut pas réduire le nombre d'arguments (à 10 maximum) pour obtenir le même résultat.
A+
Bonjour
Il est pour moi assez clair qu'une fonction personnalisée utilisant un nombre important d'arguments et/ou paramètres (et forçant donc l'utilisateur final à définir chacun de ces éléments) est tout sauf conviviale et révèle une conception mal pensée.
Si par contre les éléments en cause doivent être spécifiés par le développeur, la "musique" est autre, mais la "philosophie" est de même nature. Une fonction personnalisée doit avoir pour vocation celle d'être utilisable dans plusieurs contextes et je vois assez mal quels contextes seraient à la fois communs et nécessitant l'utilisation de tant d'éléments qui seraient distincts d'un contexte à l'autre. Et si le développeur est celui devant utiliser cette fonction personnalisée, il est par ailleurs le dernier à avoir besoin d'aide en ce qui concerne son utilisation (puisqu'il est le créateur de la fonction).
Il est, dans un cas comme dans l'autre, assez vraisemblable que la conception est à repenser.
Bonjour,
Ce n'est pas ma fonction personnalisée qui a trop d'arguments mais la méthode MacroOptions de l'objet Application dans l'exemple fournit par John où "ArgumentDescriptions" est le 11ème alors que ma version d'Excel n'accepte que 10 arguments pour cette méthode.
Bonnes fêtes à tous.
Jean-Luc
J'ai d'énormes difficultés à deviner ce que tu veux dire.
Je ne vois rien dans le lien en cause qui corresponde à ce que tu écris.
EDIT : ne confondrais-tu par hasard pas "arguments" et "rubriques de classement" des fonctions ?
Bonjour jlg91 (Jacques),
Comme tu peux le voir dans un post plus haut, l’aide précise que tous les arguments sont facultatifs,
Il te suffit donc d’utiliser seulement ceux dont tu as besoin … et bien sûr dans l’ordre.
Chaque arguments (a moins d’être nommés) sont mis dans l’ordre séparés par une virgule ; les arguments que l’on ne veut pas ne sont pas spécifiés entre les 2 virgules à leur emplacement d’odre respectif …
Cordialement
Ryu
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein
Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple
Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)
Bonjour Ryu
Je ne vois toujours pas de quoi il veut parler.Ce n'est pas ma fonction personnalisée qui a trop d'arguments
Salut Jacques,
C'est MacroOptions qui n'a pas chez lui le même nombre d'arguments que ceux proposés par John Mc Evee (Voir la réponse de Ryu qui est claire à ce sujet)![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Salut.
A ma connaissance, Application.MacroOptions n'ajoute pas l'infobulle lors de la saisie de la fonction. Ca ne sert "que" dans l'assistant Fonctions (et pour le descriptif, dans la fenêtre de recherche des fonctions).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Public Function MonTest(FirstName As String, LastName As String) End Function Sub AddDescriptions() Application.MacroOptions macro:="MonTest", Description:="Je fais un test", _ argumentdescriptions:=VBA.Array("prénom du contact", "nom du contact") End Sub![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Merci Jacques pour la précision
Ca veut donc dire qu'en 2007, il n'est pas possible par ce biais de décrire les arguments de la fonction, qui doivent donc être nommés de façon à ce qu'on en comprenne le sens.
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Bonjour
Merci à Pierre d’avoir compris ma demande.
Je pensais que mon message du 26 décembre était clair avec ses copie d’écran.
J’attedrai Donc que mon entreprise passe à Excel 2010 ou + pour inclure cette fonctionnalité.
Bonne année à tous
Jean-Luc
Partager