Créer ses propres fonctiond dans Excel avec VB

cs_amery Messages postés 8 Date d'inscription mercredi 16 août 2006 Statut Membre Dernière intervention 28 juin 2007 - 26 juin 2007 à 12:13
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 23 août 2018 - 26 juin 2007 à 23:20
Bonjour,

débutant de chez débutant, je cherche des infos, cours, tutos pour apprendre à créer de simples fonctions en VB et les appeler ensuite à partir d'une feuille Excel. Exemple: calcul de la volatilité d'une série, etc.

Merci pour vos conseils!
Amery

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
26 juin 2007 à 12:51
public Function VOL(a As Range) As Lon
...
End function

et dans ta feuille :

=VOL(A1)

ce genre de choses quoi
0
cs_amery Messages postés 8 Date d'inscription mercredi 16 août 2006 Statut Membre Dernière intervention 28 juin 2007
26 juin 2007 à 13:23
J'ai essayé , mais ca ne marche pas.

J'ai ouvert Excel, puis l'éditeur VB. Taper une fonction de base:

Function SurfaceRectangle(Longueur, Largeur)
  SurfaceRectangle = Longueur * Largeur
End Function

Ensuite, quand j'essaie d'appeler la fonction dans ma feuille Excel, il ne la reconnaît pas...
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
26 juin 2007 à 13:46
Bonjour,
Il te faut passer les cellules contenant les valeurs "Longueur" & "Largeur" dans l'appel de fonction

mettre dans la cellule "C2" la formule "=SurfaceRectangle(A2;B2)

Bonne journée. JML
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
26 juin 2007 à 13:57
fonction publique, dans un module ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
26 juin 2007 à 14:05
Sois donc plus clair.
Que veux tu créer, au bout du compte ? :
1) une fonction personnalisée (qu'Excel prendra en compte dans tous les classeurs ouverts)
ou
2) une fonction qui ne sera appelée que dans une application  ?

Ce n'est bien évidemment pas du tout la même chose ...
0
cs_amery Messages postés 8 Date d'inscription mercredi 16 août 2006 Statut Membre Dernière intervention 28 juin 2007
26 juin 2007 à 14:08
Ca marche! J'avais mis ma fonction dans "Excel Objets" et pas dans "Module"...

Idéalement, je voudrais créer une macro complémentaire qui contient une liste de fonctions qui pourraient être utilisées dans Excel.
Mais pour le moment, j'essaie simplement de créer des fonctions qui sont liées à un classeur...

Merci!
Amery
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
26 juin 2007 à 14:09
Salut Renfield. Que veux tu dire ? J'ai testé avant de répondre et ça fonctionne correctement !
JML
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
26 juin 2007 à 14:32
Fais simple déclare ta fonction accessible pour tous classeurs ouverts ce qui te créera un fichier PERSO.xls qui sera ouvert à chaque lancement de excel
JML
0
cs_amery Messages postés 8 Date d'inscription mercredi 16 août 2006 Statut Membre Dernière intervention 28 juin 2007
26 juin 2007 à 16:03
ok, mais sinon, comment crée-t-on un fichier .xla?
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
26 juin 2007 à 16:57
Création de macros complémentaires Excel personnalisées      Vous pouvez utiliser vos propres programmes [mk:@MSITStore:C:\Program%20Files\Microsoft%20Office\OFFICE11\1036\xlmain11.chm::/html/xlconAboutAddins1.htm# Visual Basic] en tant que macros complémentaires personnalisées. Pour plus d'informations sur la procédure à suivre pour faire d'un programme Visual Basic une macro complémentaire, consultez le document intitulé Guide du développeur Microsoft Office XP, que vous pouvez obtenir auprès de Microsoft.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 23 août 2018 21
26 juin 2007 à 23:20
Pour créer un fichier .xla
Tu n'as qu'à ouvrir un nouveau classeur, tu insères un module et tu y mets différentes Sub et Function et tout ce dont tu as besoin. Ce n'est qu'un pseudo-classeur conteneur de procédures. Tu peux y insérer un ou des UserForms, des contrôles, ... mais le classeur sera invisible une fois en xla, donc inutile de travailler avec les feuilles.

Une fois que tu sais que les procédures fonctionnent, tu sauvegardes ce classeur et tu choisis .xla comme extension... la dernière en bas de la liste d'extensions.

Finalement, tu vas dans le menu Outils / Macro complémentaire et tu cherches ton fichier
ou tu le copies dans le répertoire par défaut qui peut différer selon la version de Windows que tu possèdes.

Par la suite, chaque fichier xla que tu crées (et coches) se retrouvent dans la liste des projets quand tu es dans l'environnement de développement. Ils démarrent à chaque fois que tu ouvres Excel.

MPi
0