Utiliser des fonctions de feuille de calcul dans une macro - Exemples de code VBA

Il existe de nombreuses façons d'utiliser les fonctions dans VBA. VBA est livré avec de nombreuses fonctions intégrées. Vous pouvez même créer vos propres fonctions (UDF). Cependant, vous pouvez également utiliser de nombreuses fonctions d'Excel dans VBA en utilisant Application.WorksheetFunction.

Comment utiliser les fonctions de feuille de calcul dans VBA

Pour accéder à une fonction Excel dans VBA, ajoutez Application.WorksheetFunction devant la fonction que vous souhaitez appeler. Dans l'exemple ci-dessous, nous appellerons la fonction Max d'Excel :

12 Dim maxvalue aussi longtempsmaxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)

La syntaxe des fonctions est la même, mais vous entrerez les arguments de la fonction comme vous le feriez pour n'importe quelle autre fonction VBA.

Notez que la syntaxe de la fonction Max apparaît lorsque vous tapez (comme avec les fonctions VBA) :

Méthode WorksheetFunction

WorksheetFunction est une méthode d'objet Application. Il vous permet d'accéder à de nombreuses fonctions (pas toutes) des feuilles de calcul Excel standard. En règle générale, vous n'aurez accès à aucune fonction de feuille de calcul ayant une version VBA correspondante.

Vous pouvez voir une liste de plusieurs des fonctions de feuille de calcul les plus courantes ci-dessous.

Application.WorksheetFunction vs Application

Il existe en fait deux manières d'accéder à ces fonctions :

Application.WorksheetFunction (comme vu ci-dessus) :

1 maxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)

ou vous pouvez omettre la WorksheetFunction

1 valeur max = Application.Max(Plage("a1").Valeur, Plage("a2").Valeur)

Malheureusement, l'omission de la WorksheetFunction éliminera l'Intellisense qui affiche la syntaxe (voir l'image ci-dessus). Cependant, il a un gros avantage potentiel : La gestion des erreurs.

Si vous utilisez Application et que votre fonction génère une erreur, elle renverra la valeur d'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 en premier lieu.

Regardons un exemple pour voir la différence :

Gestion des erreurs Vlookup WorksheetFunction

Nous essaierons d'effectuer une recherche V qui n'aboutira pas à une correspondance. Ainsi, la fonction Vlookup renverra une erreur.

Tout d'abord, nous allons utiliser la méthode WorksheetFunction. Remarquez comment VBA renvoie une erreur :

Ensuite, nous omettons la WorksheetFunction. Remarquez comment le

Ensuite, nous omettrons la WorksheetFunction. Notez qu'aucune erreur n'est renvoyée et qu'à la place, la fonction 'value' contient la valeur d'erreur de Vlookup.

Liste des fonctions de la feuille de calcul VBA

Vous trouverez ci-dessous une liste de la plupart des fonctions courantes de feuille de travail VBA.

FonctionLa description
Logique
ETVérifie si toutes les conditions sont remplies. VRAI FAUX
SISi la condition est remplie, faites quelque chose, sinon, faites autre chose.
SIERREURSi le résultat est une erreur, faites autre chose.
OUVérifie si des conditions sont remplies. VRAI FAUX
Recherche et référence
CHOISIRChoisit une valeur dans une liste en fonction de son numéro de position.
RECHERCHEHRecherchez une valeur dans la première ligne et retournez une valeur.
INDICERenvoie une valeur en fonction de ses numéros de colonne et de ligne.
CHERCHERRecherche les valeurs horizontalement ou verticalement.
RENCONTRERecherche une valeur dans une liste et renvoie sa position.
TRANSPOSERInverse l'orientation d'une plage de cellules.
RECHERCHEVRecherchez une valeur dans la première colonne et retournez une valeur.
Date et heure
DATERenvoie une date à partir de l'année, du mois et du jour.
DATEVALEURConvertit une date stockée sous forme de texte en une date valide
JOURNÉERenvoie le jour sous forme de nombre (1-31).
JOURS360Renvoie les jours entre 2 dates dans une année de 360 ​​jours.
EDITERRenvoie une date à n mois d'une date de début.
MOISRenvoie le dernier jour du mois, date à n mois.
HEURERenvoie l'heure sous forme de nombre (0-23).
MINUTERenvoie la minute sous forme de nombre (0-59).
MOISRenvoie le mois sous forme de nombre (1-12).
JOURS DE RÉSEAUNombre de jours ouvrés entre 2 dates.
NETWORKDAYS.INTLJours ouvrés entre 2 dates, week-ends personnalisés.
MAINTENANTRenvoie la date et l'heure actuelles.
SECONDERenvoie la seconde sous forme de nombre (0-59)
TEMPSRenvoie l'heure à partir d'une heure, d'une minute et d'une seconde.
VALEUR DE TEMPSConvertit une heure stockée sous forme de texte en une heure valide.
JOUR DE LA SEMAINERenvoie le jour de la semaine sous forme de nombre (1-7).
NUMERO SEMAINERenvoie le numéro de la semaine dans une année (1-52).
JOURNÉE DE TRAVAILLa date n jours ouvrés à partir d'une date.
ANNÉERenvoie l'année.
ANNÉEFRACRenvoie la fraction d'année entre 2 dates.
Ingénierie
CONVERTIRConvertir un nombre d'une unité à une autre.
Financier
VFCalcule la valeur future.
PVCalcule la valeur actuelle.
NPERCalcule le nombre total de périodes de paiement.
PMTCalcule le montant du paiement.
TAUXCalcule le taux d'intérêt.
VANCalcule la valeur actuelle nette.
TRILe taux de rendement interne pour un ensemble de FC périodiques.
XIRRLe taux de rendement interne pour un ensemble de FC non périodiques.
LE PRIXCalcule le prix d'une obligation.
INTÉRERLe taux d'intérêt d'un titre entièrement investi.
Informations
ISERRTeste si la valeur de la cellule est une erreur, ignore #N/A. VRAI FAUX
ERREURTestez si la valeur de la cellule est une erreur. VRAI FAUX
EST MÊMETestez si la valeur de la cellule est paire. VRAI FAUX
ISLOGIQUETestez si la cellule est logique (VRAI ou FAUX). VRAI FAUX
ISNATestez si la valeur de la cellule est #N/A. VRAI FAUX
N'EST PAS TEXTETestez si la cellule n'est pas du texte (les cellules vides ne sont pas du texte). VRAI FAUX
ISNUMBERTeste si la cellule est un nombre. VRAI FAUX
EST IMPAIRTestez si la valeur de la cellule est impaire. VRAI FAUX
ISTEXTTestez si la cellule est du texte. VRAI FAUX
TAPERRenvoie le type de valeur dans une cellule.
Math
abdosCalcule la valeur absolue d'un nombre.
AGRÉGATDéfinir et effectuer des calculs pour une base de données ou une liste.
PLAFONDArrondit un nombre au multiple spécifié le plus proche.
COSRenvoie le cosinus d'un angle.
DEGRÉSConvertit les radians en degrés.
DSUMAdditionne les enregistrements de la base de données qui répondent à certains critères.
MÊMEArrondit à l'entier pair le plus proche.
EXPCalcule la valeur exponentielle d'un nombre donné.
FAITRenvoie la factorielle.
SOLArrondit un nombre à l'inférieur, au multiple spécifié le plus proche.
PGCDRenvoie le plus grand diviseur commun.
INTArrondit un nombre à l'entier inférieur le plus proche.
LCMRenvoie le plus petit commun multiple.
LNRenvoie le logarithme népérien d'un nombre.
JOURNALRenvoie le logarithme d'un nombre dans une base spécifiée.
LOG10Renvoie le logarithme en base 10 d'un nombre.
RONDEArrondit un nombre à un multiple spécifié.
IMPAIRArrondit à l'entier impair le plus proche.
PILa valeur de PI.
PUISSANCECalcule un nombre élevé à une puissance.
PRODUITMultiplie un tableau de nombres.
QUOTIENTRenvoie le résultat entier de la division.
RADIENSConvertit un angle en radians.
ALERTE ENTRECalcule un nombre aléatoire entre deux nombres.
TOURArrondit un nombre à un nombre spécifié de chiffres.
ARRONDIR VERS LE BASArrondit un nombre vers le bas (vers zéro).
RASSEMBLEMENTArrondit un nombre vers le haut (loin de zéro).
PÉCHÉRenvoie le sinus d'un angle.
TOTALRenvoie une statistique récapitulative pour une série de données.
SOMMEAdditionne des nombres.
SOMMEIFSomme des nombres qui répondent à un critère.
SOMMESSomme des nombres qui répondent à plusieurs critères.
SOMMEPRODUITMultiplie des tableaux de nombres et additionne le tableau résultant.
BRONZERRenvoie la tangente d'un angle.
Statistiques
MOYENNEMoyenne des nombres.
MOYENIFFait la moyenne des nombres qui répondent à un critère.
MOYENNESFait la moyenne des nombres qui répondent à plusieurs critères.
CORRELCalcule la corrélation de deux séries.
COMPTERCompte les cellules qui contiennent un nombre.
COUNTAComptez les cellules qui ne sont pas vides.
COUNTVIDECompte les cellules vides.
COUNTIFCompte les cellules qui répondent à un critère.
COUNTIFSCompte les cellules qui répondent à plusieurs critères.
PRÉVISIONPrédisez les futures valeurs y à partir de la ligne de tendance linéaire.
LA FRÉQUENCECompte les valeurs comprises dans les plages spécifiées.
CROISSANCECalcule les valeurs Y en fonction d'une croissance exponentielle.
INTERCEPTERCalcule l'interception Y pour une ligne de meilleur ajustement.
GRANDRenvoie la kième plus grande valeur.
LIGNERenvoie des statistiques sur une ligne de tendance.
MAXIMUMRenvoie le plus grand nombre.
MÉDIANRenvoie le nombre médian.
MINRenvoie le plus petit nombre.
MODERenvoie le nombre le plus courant.
CENTILERenvoie le kième centile.
PERCENTILE.INCRenvoie le kième centile. Où k est inclusif.
POURCENTILE.EXCRenvoie le kième centile. Où k est exclusif.
QUARTILERenvoie la valeur de quartile spécifiée.
QUARTILE.INCRenvoie la valeur de quartile spécifiée. Compris.
QUARTILE.EXCRenvoie la valeur de quartile spécifiée. Exclusif.
RANGRang d'un nombre dans une série.
RANG.MOYRang d'un nombre dans une série. Moyennes.
RANG.EQRang d'un nombre dans une série. Faire une blague.
PENTECalcule la pente à partir de la régression linéaire.
PETITRenvoie la kième plus petite valeur.
STDEVCalcule l'écart type.
STDEV.PCalcule l'écart-type d'une population entière.
STDEV.SCalcule le SD d'un échantillon.
STDEVPCalcule l'écart-type d'une population entière
TENDANCECalcule les valeurs Y en fonction d'une ligne de tendance.
Texte
NETTOYERSupprime tous les caractères non imprimables.
DOLLARConvertit un nombre en texte au format monétaire.
TROUVELocalise la position du texte dans une cellule. Sensible à la casse.
LA GAUCHETronque le texte d'un certain nombre de caractères à partir de la gauche.
LENCompte le nombre de caractères dans le texte.
MILIEUExtrait le texte du milieu d'une cellule.
CORRECTConvertit le texte en casse appropriée.
REMPLACERRemplace le texte en fonction de son emplacement.
REPTRépète le texte un certain nombre de fois.
DROITTronque le texte d'un certain nombre de caractères à partir de la droite.
CHERCHERLocalise la position du texte dans une cellule. Non sensible à la casse.
REMPLACERRecherche et remplace du texte. Sensible aux majuscules et minuscules.
TEXTEConvertit une valeur en texte avec un format de nombre spécifique.
GARNITURESupprime tous les espaces supplémentaires du texte.
wave wave wave wave wave