Où trouver la source d'une fonction VBA dans Excel


12

J'ai un classeur qui utilise une certaine fonction vba qui n'apparaît pas dans le Insert | Boîte de dialogue Insérer une fonction ... liste des fonctions disponibles.

Comment puis-je trouver sa source (pour voir ce qu'elle fait)?

Réponses:


19

J'espère que je comprends votre question ... En lisant les autres réponses je constate que ce n'est pas une macro enregistrée. Il est prudent de supposer alors que quelqu'un l'a écrit en VBA. Essayez ce qui suit:

  1. Appuyez sur Alt+ F11pour ouvrir votre éditeur VBA
  2. Cliquez sur Affichage -> Explorateur de projets (il est peut-être déjà visible.) (Ou: CTRL+ R)
  3. Vous devriez voir "VBAProject (votre nom de classeur.xls). Cliquez dessus.
  4. Cliquez sur l'une des feuilles sous «Objets Microsoft Excel» dans l'explorateur de projets.
  5. Cliquez sur Affichage -> Code
  6. Cliquez sur Modifier -> Rechercher
  7. Tapez le nom de la fonction dans la case
  8. Assurez-vous que «Projet en cours» est sélectionné.
  9. Cliquez sur Suivant

Cela devrait vous amener là où la fonction est écrite.


Essayez ceci: 3a. Cliquez sur l'une des feuilles sous «Objets Microsoft Excel» dans l'explorateur de projets. 3b. Cliquez sur Affichage> Code maintenant, essayez l'étape 4 de la réponse d'origine.
Sux2Lose

applaudissements qui l'ont trouvé
rutherford

3

Appuyez sur ALT+ F11pour voir la fenêtre du projet VBA. Vous devriez pouvoir y trouver le code de la fonction personnalisée.


1

Microsoft a écrit une documentation pour VBA. Il est trié pour les objets, pas pour les fonctions, mais si vous n'avez pas besoin de taper le nom d'un objet avant la fonction, il est probable que ce soit une fonction d'un objet avec lequel vous travaillez actuellement, comme le classeur actuel. Cette documentation peut être lue ici. http://msdn.microsoft.com/en-us/library/bb149081.aspx Essayez de rechercher la fonction dans des objets tels que Workbook, Sheet, etc., et si ce n'est pas le cas, utilisez l'option de recherche sur le site ( avertissement: cette recherche était mauvaise, maintenant elle semble être une recherche bing, alors peut-être est-elle meilleure maintenant) Vous ne pourrez pas voir la source de la fonction, mais il y a une API complète.

Si vous ne pouvez pas y trouver la fonction et pensez que ce n'est pas une fonction Excel standard, il y a la question d'où Excel l'a-t-elle obtenue pour l'exécuter. Essayez de déboguer une macro appelant la fonction en question et utilisez le bouton "Pas à pas". Si vous voyez la source, vous avez résolu votre problème. S'il n'est pas là, il peut provenir d'une application externe communiquant avec Excel. Allez dans le bouton "Office", choisissez les options Excel, allez dans les compléments. Vous pouvez regarder les compléments installés et rechercher leur documentation.

Si tout le reste échoue et / ou est trop lourd, vous pouvez toujours google quelque chose comme "[nom de la fonction] + Excel + VBA + Documentation]". Vous trouverez peut-être une documentation en ligne.


la fonction n'est certainement pas une fonction Excel standard. Pour autant que je sache, je peux voir toutes les fonctions disponibles via le Insert | La boîte de dialogue Fonction ... affiche ensuite toutes les catégories. le nom de la fonction n'apparaît pas.
rutherford

0

La fonction à laquelle vous faites référence est probablement une "macro" enregistrée dans Excel.

Si vous utilisez Office 2007, cliquez sur l'onglet Affichage, puis sur la flèche déroulante sous le bouton Macros. Sélectionnez Afficher les macros dans la liste pour afficher les macros enregistrées pour cette feuille de calcul.

Si le nom de la fonction qui vous intéresse apparaît dans la liste, sélectionnez-le, puis cliquez sur le bouton Modifier pour l'afficher.


merci pour la réponse mais je ne vois que deux macros ici et la fonction qui m'intéresse non plus
rutherford

Quel est le nom de la fonction?
Michael Todd

nom est MarketPrice
rutherford
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.