Utilisation des fonctions de feuille de calcul Excel dans Visual Basic

Utilisez la plupart des fonctions de feuille de calcul Microsoft Excel dans vos instructions Visual Basic. Pour obtenir une liste des fonctions de feuille de calcul que vous pouvez utiliser, voir Liste des fonctions de feuille de calcul disponibles dans Visual Basic.

Remarque

Certaines fonctions de feuille de calcul ne sont pas utiles dans Visual Basic. Par exemple, la fonction Concatenate n’est pas nécessaire, car dans Visual Basic vous pouvez utiliser l’opérateur & pour joindre plusieurs valeurs de texte.

Appel d’une fonction de feuille de calcul à partir de Visual Basic

Dans Visual Basic, les fonctions de feuille de calcul Excel sont disponibles via l’objet WorksheetFunction.

Les procédures Subci-dessous utilisent la fonction de feuille de calcul Min pour déterminer la plus petite valeur dans une plage de cellules. Tout d’abord, la variable myRange est déclarée en tant qu’objet Range puis définie sur la plage A1:C10 sur Feuil1. Une autre variable, answer, bénéficie de l'attribution du résultat de l'application de la fonction Min à myRange. Enfin, la valeur de answer s’affiche dans une boîte de message.

Sub UseFunction() 
 Dim myRange As Range 
 Set myRange = Worksheets("Sheet1").Range("A1:C10") 
 answer = Application.WorksheetFunction.Min(myRange) 
 MsgBox answer 
End Sub

Si vous utilisez une fonction de feuille de calcul qui nécessite une référence de plage comme argument, vous devez spécifier un objet Range. Par exemple, vous pouvez utiliser la fonction de feuille de calcul Match pour rechercher une plage de cellules. Dans une cellule de feuille de calcul, vous pouvez entrer une formule telle que =MATCH(9,A1:A10,0). Toutefois, dans une procédure Visual Basic, vous auriez spécifié un objet Range pour obtenir le même résultat.

Sub FindFirst() 
 myVar = Application.WorksheetFunction _ 
 .Match(9, Worksheets(1).Range("A1:A10"), 0) 
 MsgBox myVar 
End Sub

Remarque

Les fonctions Visual Basic n’utilisent pas le qualificateur WorksheetFunction. Une fonction peut avoir le même nom qu'une fonction Microsoft Excel, mais pourtant avoir un fonctionnement différent. Par exemple, Application.WorksheetFunction.Log et Log renverront des valeurs différentes.

Insertion d'une fonction de feuille de calcul dans une cellule

Pour insérer une fonction de feuille de calcul dans une cellule, spécifiez la fonction en tant que valeur de la propriété Formula de l’objet Range correspondant. Dans l’exemple suivant, la fonction de feuille de calcul RAND (qui génère un nombre aléatoire) est attribuée à la propriété Formula de la plage A1:B3 sur Sheet1 du classeur actif.

Sub InsertFormula() 
 Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()" 
End Sub

Exemple

Cet exemple utilise la fonction de feuille de calcul VPM pour calculer le remboursement d’un prêt immobilier. Notez que cet exemple utilise la méthode InputBox à la place de la fonction InputBox, afin que la méthode puisse effectuer une vérification de type. Les instructions Static obligent Visual Basic à conserver les valeurs des trois variables ; celles-ci seront affichées en tant que valeurs par défaut à la prochaine exécution du programme.

Static loanAmt 
Static loanInt 
Static loanTerm 
loanAmt = Application.InputBox _ 
 (Prompt:="Loan amount (100,000 for example)", _ 
 Default:=loanAmt, Type:=1) 
loanInt = Application.InputBox _ 
 (Prompt:="Annual interest rate (8.75 for example)", _ 
 Default:=loanInt, Type:=1) 
loanTerm = Application.InputBox _ 
 (Prompt:="Term in years (30 for example)", _ 
 Default:=loanTerm, Type:=1) 
payment = Application.WorksheetFunction _ 
 .Pmt(loanInt / 1200, loanTerm * 12, loanAmt) 
MsgBox "Monthly payment is " & Format(payment, "Currency")

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.