« Macros-commandes VBA/Création de Fonction » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-(\*)(.*)\n{2,}(\*) +\1\2\n\3)
m Robot : Remplacement de texte automatisé (-\n(==={0,3})(?: *)([^\n=]+)(?: *)\1(?: *)\n +\n\1 \2 \1\n)
Ligne 12 :
 
 
== Création d'une fonction ==
 
{{Définition
Ligne 18 :
Une fonction est un sous-programme qui permet d'exécuter une série d'instructions et retourne une valeur typée à la fin de ce traitement. Cette valeur peut être par la suite exploitée par une autre procédure, fonction ou application. Et la notion de sous-programme quant à elle correspond à une fonction ou procédure dans la plupart des langages de programmation }}
 
=== Différence entre les mots clés Sub et Fonction ===
 
* Une procédure Sub est une suite d'instructions qui peut être appelée et exécutée par l'utilisateur ou par une autre procédure et ne renvoie pas de valeur de sortie
Ligne 47 :
}}
 
=== Utilité des fonctions personnalisées ===
 
Excel contient plus de 300 fonctions prédéfinies dans une feuille de travail. Mais si cela ne suffit pas, grâce à VBA, on peut créer des fonctions personnalisées.
Ligne 82 :
Attention, suivant la qualité de la programmation, les fonctions personnalisées peuvent être beaucoup plus lentes que les fonctions intégrées. Tout utilisateur peut appeler la fonction à partir d'une procédure ou de l'interface EXCEL. Une fonction personnalisée permet en principe d'éliminer les redondances de code et de réduire le nombre d'erreurs.
 
=== L'écriture d'une fonction personnalisée ===
 
Pour créer une fonction Excel sous VBA plusieurs étapes sont nécessaires :
Ligne 119 :
}}
 
=== Utilisation d'une fonction personnalisée sous VBA ===
 
La création de formules dans Visual Basic est un outil important si l’on souhaite personnaliser son outil ou utiliser dans des procédures des calculs nécessitant une formule non présente dans Excel.
Ligne 153 :
* Enfin, fermer la fenêtre appuyer sur la touche F5 pour lancer la macro.
 
=== Utilisation d'une fonction personnalisée sous Excel ===
 
La fonction nouvellement créée est enregistrée dans Excel et peut être utilisée de la même manière que toutes les autres fonctions initiales d'Excel.
Ligne 173 :
<br />
 
== Description de la signature d'une fonction ==
 
Les signatures des fonctions (1ère ligne correspondant à la déclaration de la fonction) peuvent être beaucoup plus complexes, et leur analyse peut être utile à la compréhension de leur comportement.
Ligne 190 :
# préciser le type de la valeur retournée après le mot clé As
 
=== La portée d'une fonction ===
 
La notion de portée, parfois appelée visibilité, défini les limites d’accessibilité d'une variable. Il existe plusieurs instructions de déclarations selon la portée désirée et la déclaration ne se fait pas au même endroit. Et leurs utilisations sont facultatifs.
Ligne 198 :
* '''Friend :''' La fonction sera alors accessible depuis tous les modules du projet en cours, le mot clé Friend est utilisé uniquement dans un module de classe.
 
=== Le nom de la fonction ===
 
Dans VBA, le nom de la fonction sert à la fois à l'identifier et à stocker la valeur de retour. Mais, il peut aussi être considéré comme une variable locale à la fonction, créée automatiquement lors de l'appel, et utilisable à ce titre comme toute autre variable locale.
Ligne 220 :
* Il est conseillé d’avoir au moins une majuscule dans la variable déclarée. Ensuite lors de la saisie de la variable en minuscule dans la macro, celle-ci reprendra automatiquement la majuscule: cette astuce permet de vérifier les fautes d'orthographe éventuelles.
 
=== Les arguments de la fonction ===
 
Les arguments se déclarent lors de la définition de la procédure.
Ligne 249 :
En effet, les fonctions sont constituées d'arguments obligatoires et optionnels. Comme leur nom l'indique, les arguments obligatoires sont nécessaires au bon fonctionnement de la procédure. Quant aux arguments optionnels, lorsqu’ils sont omis, cela n'empêche pas l'exécution de la macro. Les arguments optionnels sont obligatoirement placés en fin de la déclaration.
 
=== La valeur de retour de la fonction ===
 
Contrairement à une procédure, une fonction retourne un résultat. Ainsi, l'option '''As type''' permet de spécifier le type de la valeur retournée.
Ligne 269 :
* Une fonction de type Object renvoie Nothing
 
== Appel d'une fonction ==
 
VBA comporte des fonctions financières et mathématiques. En effet, dans l'explorateur d'objet et à l'intérieur de la librairie VBA, on peut trouver la liste des fonctions.
Ligne 293 :
WorksheetFunction.Sqrt(x)
 
== Description personnalisée d'une fonction ==
 
Contrairement aux fonctions natives d'Excel ou VBA, les fonctions personnalisées n'ont aucune description. Pour cela, dans l’éditeur de macros, utiliser le raccourci clavier F2 pour afficher l'explorateur d'objets puis sélectionner "VBAproject" dans le menu déroulant
Ligne 319 :
<br />
 
== Les fonctions VBA personnalisées ==
 
VBA offre la possibilité de créer des fonctions personnalisées, en voici quelques exemples :
 
=== Calcul des intérêts ===
 
Grâce aux fonctions personnalisées, il est possible de créer une fonction permettant de calculer plus facilement le montant des intérêts à verser en fonction du montant du Capital, du taux d'intérêt et de la durée de l'emprunt.
Ligne 350 :
<br />
 
=== Calcul d'un montant HT en fonction du Taux de TVA ===
 
Cette fonction est une fonction personnalisée qui permet de calculer le montant Hors Taxe en fonction du montant TTC et du taux de TVA
Ligne 366 :
<br />
 
=== Calcul d'un montant TTC en fonction du Taux de TVA ===
 
Cette fonction permettra de calculer le montant TTC en fonction du montant Hors taxe et du taux de TVA
Ligne 382 :
<br />
 
=== Calcul de la rentabilité globale ===
 
Cette fonction permettra de calculer la rentabilité globale d'une opération
Ligne 398 :
<br />
 
== Annexes ==
 
=== Bibliographie ===
 
* Ouvrage complet sur l’utilisation d'EXCEL et VBA dans le domaine financier ==> Chelali HERBADJI, 2012, "La gestion sous EXCEL et VBA : Techniques quantitatives de gestion", Groupe Eyrolles
 
=== Liens internes ===
 
* Testez vos connaissances au travers d'un Quiz : [[Macros-commandes VBA/Quiz/QCM Les fonctions VBA]]
Ligne 411 :
* Quelques fonctions financières existantes : [[Macros-commandes VBA/Annexe/Quelques fonctions Financières sous VBA]]
 
=== Liens externes ===
 
* Pour un apprentissage virtuel de la création de fonction : [[Macros-commandes VBA/Création de Fonction|http://www.dailymotion.com/video/xhl30u_fonction-vba-excel_tech]]