Comprendre les fonctions dans les macros (Microsoft Excel)
Vous savez déjà que vous pouvez utiliser des sous-programmes dans vos macros. VBA vous permet également de définir des fonctions pouvant être utilisées dans vos macros. La différence entre les fonctions et les sous-programmes est que les fonctions peuvent renvoyer des valeurs, contrairement aux sous-programmes. Considérez la macro suivante:
Sub Macro1() TooMany = TestFunc If TooMany Then MsgBox "Too many columns selected" End Sub
Function TestFunc() TestFunc = False If Selection.Columns.Count > 10 Then TestFunc = True End If End Function
La macro (Macro1) appelle la fonction TestFunc. Cette fonction renvoie la valeur False ou True, selon un test qu’elle effectue. Macro1 agit alors sur la valeur renvoyée. Notez que le nom de la fonction peut apparaître sur le côté droit d’un signe égal. Cela rend les fonctions très puissantes et une partie importante de tout programme. Dans la fonction, le résultat est attribué à TestFunc, qui est le nom de la fonction elle-même; c’est la valeur renvoyée par la fonction.
Comme pour les sous-programmes, vous pouvez également passer des paramètres à vos fonctions.
Ceci est illustré dans la macro suivante:
Sub Macro1() A = 12.3456 MsgBox A & vbCrLf & RoundIt(A) End Sub
Function RoundIt(X) As Integer RoundIt = Int(X + 0.5) End Function
Cette macro simple (Macro1) définit un nombre, puis utilise une boîte de message pour l’afficher et le résultat de la transmission du nombre à la fonction RoundIt. La sortie est 12.3456 et 12. Notez que le paramètre doit être passé à la fonction entre parenthèses. Notez également que la fonction n’utilise pas le même nom de variable que celui passé. C’est parce que VBA réaffecte la valeur de X (ce dont la fonction a besoin) afin qu’elle corresponde à la valeur de A (ce que le programme passe à la fonction).
La chose importante à retenir en passant des paramètres aux fonctions est que votre programme doit passer le même nombre de paramètres que la fonction attend et que les paramètres doivent être de types correspondants et dans le bon ordre.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (11765) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:
link: / excel-Understanding_Functions_in_Macros [Comprendre les fonctions dans les macros]
.