VBA – Comment Utiliser les Fonctions des Feuilles de Calcul (et une Liste Complète)
In this Article
Il existe de nombreuses façons d’utiliser les fonctions en VBA. VBA est livré avec de nombreuses fonctions intégrées. Vous pouvez même créer vos propres fonctions (parfois appelées « UDF » de l’anglais : user defined function). Cependant, vous pouvez également utiliser de nombreuses fonctions de feuilles de calul Excel à partir de VBA en utilisant Application.WorksheetFunction.
Comment Utiliser les Fonctions de Feuille de Calcul en VBA
Pour accéder à une fonction Excel en VBA, ajoutez Application.WorksheetFunction devant la fonction que vous souhaitez appeler. Dans l’exemple ci-dessous, nous appellerons la fonction Max d’Excel :
Dim valeurmax as long
valeurmax = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)
La syntaxe des fonctions est la même, mais vous devez entrer les arguments de la fonction comme vous le feriez pour n’importe quelle autre fonction VBA. Il est important de noter que les noms anglais des fonctions de feuille de calcul doivent être utilisé en VBA.
Notez que la syntaxe de la fonction Max apparaît lorsque vous tapez (comme pour les fonctions VBA) :
Méthode WorksheetFunction
WorksheetFunction est une méthode de l’objet Application. Elle vous permet d’accéder à de nombreuses (mais pas toutes) fonctions standard de feuille de calcul Excel. En général, vous n’aurez pas accès aux fonctions de feuille de calcul qui ont une version VBA correspondante.
Vous trouverez ci-dessous une liste des fonctions de feuille de calcul les plus courantes.
Application.WorksheetFunction et Application
Il existe en fait deux façons d’accéder à ces fonctions :
Application.WorksheetFunction (comme indiqué ci-dessus) :
valeurmax = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)
ou vous pouvez omettre la fonction WorksheetFunction
valeurmax = Application.Max(Range("a1").Value, Range("a2").Value)
Malheureusement, l’omission de la fonction WorksheetFunction élimine l’Intellisense qui affiche la syntaxe (voir l’image ci-dessus). Toutefois, cette solution présente un avantage potentiel important : La Gestion des Erreurs.
Si vous utilisez Application et que votre fonction génère une erreur, elle renverra la valeur de l’erreur. Si vous utilisez la méthode WorksheetFunction, VBA génère une erreur d’exécution. Bien sûr, vous pouvez gérer l’erreur VBA, mais il est généralement préférable d’éviter l’erreur dès le départ.
Voyons un exemple pour comprendre la différence :
Gestion des Erreurs avec les Fonction de Feuille de Calcul RechercheV
Nous allons tenter d’effectuer une RechercheV (en anglais : VLookup) qui n’aboutira pas à une correspondance. La fonction RechercheV renverra donc une erreur.
Tout d’abord, nous utiliserons la méthode WorksheetFunction. Remarquez que VBA renvoie une erreur :
Ensuite, nous omettons la méthode WorksheetFunction. Remarquez que la méthode
Ensuite, nous allons omettre la fonction WorksheetFunction. Remarquez qu’aucune erreur n’est déclenchée et que la variable « valeur » contient la valeur de l’erreur provenant de la fonction RechercheV.
Liste des Fonctions de Feuille de Calcul VBA
Vous trouverez ci-dessous une liste des fonctions de feuille de calcul VBA les plus courantes.
Fonction | Description |
---|---|
Opérateurs Logiques | |
AND | Vérifie si toutes les conditions sont remplies. VRAI/FAUX |
IF | Si la condition est remplie, faire quelque chose, sinon, faire autre chose. |
IFERROR | Si le résultat est une erreur, alors faire autre chose. |
OR | Vérifie si au moins une des conditions est remplie. VRAI/FAUX |
Recherche et Références | |
CHOOSE | Choisit une valeur dans une liste en fonction de son numéro de position. |
HLOOKUP | Recherche une valeur dans la première ligne et renvoie une valeur. |
INDEX | Renvoie une valeur basée sur les numéros de colonne et de ligne. |
LOOKUP | Recherche des valeurs horizontalement ou verticalement. |
MATCH | Recherche une valeur dans une liste et renvoie sa position. |
TRANSPOSE | Renverse l'orientation d'une plage de cellules. |
VLOOKUP | Recherche une valeur dans la première colonne et renvoie une valeur. |
Date et Heure | |
DATE | Renvoie une date à partir de l'année, du mois et du jour. |
DATEVALUE | Convertit une date stockée sous forme de texte en une valeur de date valide |
DAY | Renvoie le jour sous forme de nombre (1-31). |
DAYS360 | Retourne les jours entre 2 dates dans une année de 360 jours. |
EDATE | Renvoie une date à n mois d'une date de début. |
EOMONTH | Renvoie le dernier jour du mois, à n mois de la date. |
HOUR | Renvoie l'heure sous forme de nombre (0-23). |
MINUTE | Renvoie les minutes sous forme de nombre (0-59). |
MONTH | Renvoie le mois sous la forme d'un nombre (1-12). |
NETWORKDAYS | Nombre de jours ouvrables entre 2 dates. |
NETWORKDAYS.INTL | Jours ouvrables entre 2 dates, week-ends personnalisés. |
NOW | Renvoie la date et l'heure actuelle. |
SECOND | Renvoie les secondes sous forme de nombre (0-59) |
TIME | Renvoie une valeur d'heure à partir des heures, minutes et secondes. |
TIMEVALUE | Convertit une heure stockée sous forme de texte en une valeur d'heure valide. |
WEEKDAY | Renvoie le jour de la semaine sous la forme d'un nombre (1-7). |
WEEKNUM | Renvoie le numéro de la semaine dans une année (1-52). |
WORKDAY | La date n jours ouvrables à partir d'une date. |
YEAR | Renvoie l'année. |
YEARFRAC | Renvoie les années entre 2 dates sous forme de fraction. |
Ingénierie | |
CONVERT | Convertit un nombre d'une unité à une autre. |
Finances | |
FV | Calcule la valeur future. |
PV | Calcule la valeur actualisée. |
NPER | Calcule le nombre total de périodes de paiement. |
PMT | Calcule le montant du paiement. |
RATE | Calcule le taux d'intérêt. |
NPV | Calcule la valeur actualisée nette. |
IRR | Le taux de rendement interne d'un ensemble de CF périodiques (flux de trésorerie). |
XIRR | Le taux de rendement interne pour un ensemble de CF non périodiques (flux de trésorerie). |
PRICE | Calcule le prix d'une obligation. |
INTRATE | Le taux d'intérêt d'un titre entièrement investi. |
Information | |
ISERR | Teste si la valeur de la cellule est une erreur, ignore les #N/A. VRAI/FAUX |
ISERROR | Teste si la valeur de la cellule est une erreur. VRAI/FAUX |
ISEVEN | Teste si la valeur de la cellule est paire. VRAI/FAUX |
ISLOGICAL | Teste si la cellule est logique (VRAI ou FAUX). VRAI/FAUX |
ISNA | Teste si la valeur de la cellule est #N/A. VRAI/FAUX |
ISNONTEXT | Teste si la cellule n'est pas du texte (les cellules vides ne sont pas du texte). VRAI/FAUX |
ISNUMBER | Teste si la cellule est un nombre. VRAI/FAUX |
ISODD | Teste si la valeur de la cellule est impaire. VRAI/FAUX |
ISTEXT | Teste si la cellule est du texte. VRAI/FAUX |
TYPE | Renvoie le type de valeur dans une cellule. |
Mathématiques | |
ABS | Calcule la valeur absolue d'un nombre. |
AGGREGATE | Définit et effectue des calculs pour une base de données ou une liste. |
CEILING | arrondit un nombre au multiple spécifié le plus proche. |
COS | Renvoie le cosinus d'un angle. |
DEGREES | Convertit des radians en degrés. |
DSUM | Additionne les enregistrements de la base de données qui répondent à certains critères. |
EVEN | Arrondit à l'entier pair le plus proche. |
EXP | Calcule la valeur exponentielle d'un nombre donné. |
FACT | Renvoie la factorielle. |
FLOOR | Arrondit un nombre vers le bas, au multiple spécifié le plus proche. |
GCD | Renvoie le plus grand dénominateur commun. |
INT | Arrondit un nombre à l'entier le plus proche. |
LCM | Renvoie le plus petit multiple commun. |
LN | Renvoie le logarithme naturel d'un nombre. |
LOG | Renvoie le logarithme d'un nombre dans la base spécifiée. |
LOG10 | Renvoie le logarithme en base 10 d'un nombre. |
MROUND | Arrondit un nombre à un multiple spécifié. |
ODD | Arrondit à l'entier impair le plus proche. |
PI | Retourne la valeur de PI |
POWER | Calcule un nombre élevé à une puissance. |
PRODUCT | Multiplie un tableau de nombres. |
QUOTIENT | Renvoie la valeur entière du résultat de la division. |
RADIANS | Convertit un angle en radians. |
RANDBETWEEN | Calcule un nombre aléatoire entre deux nombres. |
ROUND | Arrondit un nombre au nombre de chiffres spécifié. |
ROUNDDOWN | Arrondit un nombre vers le bas (vers zéro). |
ROUNDUP | Arrondit un nombre vers le haut (en s'éloignant de zéro). |
SIN | Renvoie le sinus d'un angle. |
SUBTOTAL | Renvoie une statistique de synthèse pour une série de données. |
SUM | Additionne les nombres. |
SUMIF | Additionne les nombres qui répondent à un critère. |
SUMIFS | Additionne les nombres qui répondent à plusieurs critères. |
SUMPRODUCT | Multiplie des tableaux de nombres et additionne le tableau résultant. |
TAN | Renvoie la tangente d'un angle. |
Statistiques | |
AVERAGE | Retourne la valeur moyenne des nombres spécifiés. |
AVERAGEIF | Fait la moyenne des nombres qui répondent à un critère. |
AVERAGEIFS | Averages numbers that meet multiple criteria. |
CORREL | Fait la moyenne des nombres qui répondent à plusieurs critères. |
COUNT | Compte les cellules qui contiennent un nombre. |
COUNTA | Compte les cellules qui ne sont pas vides. |
COUNTBLANK | Compte les cellules qui sont vides. |
COUNTIF | Compte les cellules qui répondent à un critère. |
COUNTIFS | Compte les cellules qui répondent à plusieurs critères. |
FORECAST | Prévoit les valeurs y futures à partir de la fonction de régression linéaire. |
FREQUENCY | Compte les valeurs qui se situent dans les plages spécifiées. |
GROWTH | Calcule les valeurs Y sur la base d'une croissance exponentielle. |
INTERCEPT | Calcule l'ordonnée à l'origine d'une droite de meilleur ajustement. |
LARGE | Renvoie la Kième valeur la plus élevée. |
LINEST | Renvoie des statistiques sur une droite de tendance. |
MAX | Renvoie le plus grand nombre. |
MEDIAN | Renvoie le nombre médian. |
MIN | Renvoie le plus petit nombre. |
MODE | Renvoie le nombre le plus fréquent. |
PERCENTILE | Renvoie le Kième percentile. |
PERCENTILE.INC | Renvoie le Kième percentile. Où k est inclusif. |
PERCENTILE.EXC | Renvoie le Kième percentile. Où k est exclusif. |
QUARTILE | Renvoie la valeur du quartile spécifié. |
QUARTILE.INC | Renvoie la valeur du quartile spécifié. Inclusif. |
QUARTILE.EXC | Renvoie la valeur du quartile spécifié. Exclusif. |
RANK | Rang d'un nombre dans une série. |
RANK.AVG | Rang d'un nombre dans une série. Moyennes. |
RANK.EQ | Rang d'un nombre dans une série. Premier rang. |
SLOPE | Calcule la pente d'une régression linéaire. |
SMALL | Renvoie la Kième valeur la plus petite. |
STDEV | Calcule l'écart-type. |
STDEV.P | Calcule l'écart-type d'une population entière. |
STDEV.S | Calcule l'écart-type d'un échantillon. |
STDEVP | Calcule l'écart-type d'une population entière |
TREND | Calcule les valeurs Y sur la base d'une ligne de tendance. |
Texte | |
CLEAN | Supprime tous les caractères non imprimables. |
DOLLAR | Convertit un nombre en texte au format monétaire. |
FIND | Localise la position du texte dans une cellule. |
LEFT | Tronque le texte d'un certain nombre de caractères à partir de la gauche. |
LEN | Compte le nombre de caractères dans le texte. |
MID | Extrait le texte du milieu d'une cellule. |
PROPER | Convertit la casse du texte en nom propre. |
REPLACE | Remplace le texte en fonction de son emplacement. |
REPT | Répéter le texte un certain nombre de fois. |
RIGHT | Tronque le texte d'un certain nombre de caractères à partir de la droite. |
SEARCH | Localise la position du texte dans une cellule. Ne tient pas compte de la casse. |
SUBSTITUTE | Recherche et remplace du texte. Sensible à la casse. |
TEXT | Convertit une valeur en texte avec un format numérique spécifique. |
TRIM | Supprime tous les espaces superflus du texte. |