Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Premier code en VBA : fonction et procédure ====== Ouvrez l'éditeur de VBE (Visual Basic Editor) : * cliquez sur le bouton {{:vba:vba_06.png|}} de l'onglet Développeur {{:vba:vba_07.png |}} * Puis insérez un nouveau module que vous appellerez SIO {{ :vba:vba_08.png |}} ===== Créer votre première fonction ===== Vous allez créer dans le module DCG une fonction tva() qui va renvoyer la valeur 1.2 Dans VBE, saisissez le code suivant <code> Public Function tva() tva = 1.2 End Function </code> {{ :dev:excelvba:excelvba_09.png |}} Pour renvoyez une valeur, il suffit d'utiliser le **nom** de la fonction et de lui affecter une valeur : tva = 1.2 Pour utiliser cette nouvelle fonction, écrivez dans la cellule A1 de votre feuille =tva() ou utilisez-la dans une formule de calcul. {{ :dev:excelvba:excelvba_17.png |}} ===== Créer une fonction, avec des paramètres ===== Vos fonctions peuvent utiliser des paramètres. Ecrivez cette fonction **politesse()** et tester la. <code> Public Function politesse(nom as string) politesse = "Bonjour " + nom End Function </code> {{ :dev:excelvba:excelvba_10.png |}} La fonction apparaît comme une **fonction** d'Excel et puisqu'il y a un **paramètre**, **l'assistant** vous propose de sélectionner la **cellule** de la feuille qui contient la **valeur** du paramètre à utiliser. {{ :dev:excelvba:excelvba_18.png |}} ===== Les types de données les plus courants ===== Voici les types de données que vous pouvez utiliser avec VBA : * chaîne de caractères: string * réel : single * entier : integer * date : date * range : plage de cellule ===== Créer votre première procédure===== Créez la procédure info() qui affiche une boite de dialogue en utilisant la fonction politesse précédente. <code vb> Sub info() Dim texte as String texte=politesse("Charles") MsgBox texte, vbInformation, "info" End Sub </code> **Remarque** : la fonction **MsgBox** est utilisée pour afficher le résultat de la fonction **politesse()**. Pour exécuter cette procédure vous pouvez : * exécuter la procédure comme vous pouvez le faire avec une macro (bouton macro, sélectionner la procédure info et l'exécuter). * affecter la procédure info() à un bouton. Pour affecter la procédure à un bouton : * créez un bouton sur votre feuille en cliquant sur le bouton {{:dev:excelvba:excelvba_11.png|}} de l'onglet **Développeur** * utilisez l'outil **bouton** pour dessiner votre bouton * **associez** la procédure info() (la macro) à votre bouton. * **Renommez** votre bouton. {{ :dev:excelvba:excelvba_12.png?200 |}} Par défaut les procédures sont **publiques** et vous pouvez le mentionner explicitement ce qui définit l’étendue de son utilisation : <code vb> Public Sub info() ... End Sub </code> Le mot-clé **Private** indique que la procédure ne peut être appelée que par les procédures de son module. <code vb> Private Sub info() ... End Sub </code> ===== Appeler une procédure dans une fonction ou une autre procédure ===== L'appel d'une procédure se fait avec l'instruction **call**. Exemple de l'appel de la procédure info() par une autre procédure : <code vb> Sub TestAppelInfo() Call info End Sub </code> ===== Pour en savoir plus : Les procédures événementielles ===== La procédure précédente était une **procédure générale**, déclarée dans un module et appelée explicitement dans le code. Une **procédure événementielle** est associée à un événement d’un objet. Son nom est composé du nom de l’objet, suivi du caractère souligné "_" et du nom de l’événement (ex : Workbook_Open). L’appel d’une telle procédure est implicite, c’est-à-dire que la procédure est exécutée automatiquement lorsque l’événement associé se produit. vba/premiercode.txt Dernière modification : 2023/01/20 19:53de pb