Liste des fonctions VBA
Le langage VBA (Visual Basic for Applications) est un outil puissant et polyvalent utilisé dans le domaine de la programmation pour automatiser des tâches et créer des fonctionnalités personnalisées au sein des applications Microsoft Office, telles que Excel, Word et PowerPoint. Que vous soyez un débutant curieux, programmeur chevronné ou formateur VBA, comprendre les fonctions VBA est essentiel pour exploiter tout le potentiel de ce langage et accroître votre productivité. Dans cet article, nous explorerons les différentes fonctions VBA, en mettant l’accent sur leur utilité et leur application pratique. Que vous souhaitiez manipuler des données, effectuer des calculs complexes ou automatiser des tâches répétitives, les fonctions VBA vous offrent une flexibilité immense pour répondre à vos besoins spécifiques. Préparez-vous à plonger dans le monde fascinant des fonctions VBA et à découvrir comment elles peuvent transformer votre façon de travailler avec les applications Microsoft Office.
Comment choisir la fonction VBA à utiliser ?
La liste des fonctions VBA présentées dans le tableau ci-dessous permet de trouver rapidement la fonction qui correspond à votre besoin. Ces éléments sont classés par catégorie, avec l’explication et des exemples pour chacune des fonctions.
Liste des fonctions VBA
Liste des fonctions VBA présentée ci-dessous vous permet de faire des recherches par mot clé. Pour faire une recherche : saisissez le mot clé dans la zone de recherche, vous pouvez restreindre la recherche en sélectionnant une colonne au préalable.
Les différentes catégories de fonctions sont les suivantes : Condition, Mathématique, Conversion, Date et Heure, Texte, Fichier, Finance, Format, Erreur, Gestion d’objet, Impression, Système, Tableau.
Fonction | Catégorie | Explication | Exemple |
---|---|---|---|
Choose | Condition | Extraire une valeur d’une liste, à partir de son indice. | Choose(2, "janvier", "février", "mars", "avril") =>février |
Iif | Condition | Donne l'un ou l'autre de deux arguments selon l'évaluation d'une expression. | Iif(Test, valeur si vrai, valeur sur faux) |
IsDate | Condition | Indique si une expression est une date : VRAI FAUX | IsDate(Variable) |
IsEmpty | Condition | Indique si une variable a été initialisée ou non : VRAI FAUX | IsEmpty(Variable) |
IsError | Condition | Indique si une expression est une valeur d’erreur ou non : VRAI FAUX | IsError(Variable) |
IsMissing | Condition | Indique si un argument facultatif a été passé à une procédure : VRAI FAUX | Function Test(Optional VarA) If IsMissing(VarA) Then |
IsNull | Condition | Indique si une expression contient ou non des données Null : VRAI FAUX | IsNull(Variable) |
IsNumeric | Condition | Indique si une expression peut être ou non interprétée comme un nombre : VRAI FAUX | IsNumeric(Variable) |
IsObject | Condition | Indique si un identificateur représente une variable objet : VRAI FAUX | IsObject(Variable) |
Switch | Condition | Analyse une liste d’expressions et renvoie la valeur ou l'expression associée à la première expression de la liste qui a pour valeur True. | VarAliment = "Poireau" Debug.Print Switch(VarAliment = "Pomme", "Fruit", VarAliment = "Poireau", "Légumes") =>Légumes |
Abs | Mathématique | Spécifie la valeur absolue d’un nombre. | Abs(-18) =18 |
Atn | Mathématique | Spécifie l’arctangente d’un nombre. | Atn(25) => 1,53081763967161 |
CBool | Conversion | Evalue une expression et renvoie le résultat sous la forme d'un type de données Boolean | Cbool(Var) =>TRUE ou FALSE |
CByte | Conversion | Convertit une expression en données de type Byte. | CByte (5.65) =>6 |
CCur | Conversion | Convertit une expression en données de type Currency. | CCur (65.555555) =>65,5556 |
CDate | Conversion | Convertit une expression en données de type Date. | CDate("15 mai 2021") =>15/05/2021 |
CDbl | Conversion | convertit une expression en un type de données Double (c'est-à-dire en un nombre à virgule flottante double précision) | CDbl(1.00002 * 1.00001) => 1,0000300002 |
Cos | Mathématique | Spécifie le cosinus d’un angle. | Cos(1.5) |
Date | Date et Heure | Renvoie la date du jour | Date => la date du jour où la commande est exécutée |
DateAdd | Date et Heure | Ajoute ou retire un intervalle spécifié à une date. (yyyy : année - q : trimestre - m : mois - y : jour de l'année - d : jour - w : jours de la semaine - ww - semaine - h : heure - n : minutes - s : seconde) | DateAdd("m", 2, #1/1/2021#) =>01/03/20201 |
DateDiff | Date et Heure | Donne une valeur indiquant le nombre d’intervalles de temps entre deux dates données. (yyyy : année - q : trimestre - m : mois - y : jour de l'année - d : jour - w : jours de la semaine - ww - semaine - h : heure - n : minutes - s : seconde) | DateDiff("d", #7/15/2020#, #1/1/2021#) =>170 |
DatePart | Date et Heure | Donne la partie spécifiée d'une date donnée (semaine, trimestre, mois …) | DatePart("ww", #7/15/2020#, vbMonday) =>Semaine 29 |
DateSerial | Date et Heure | Donne une date correspondant à une année, un mois et un jour déterminé. | DateSerial(2020, 7, 14) =>14/07/2020 |
DateValue | Date et Heure | Donne une date à partir d'une date saisie en texte. | DateValue("15 janvier 2021") =>15/01/2021 |
Day | Date et Heure | Donne un nombre entier compris entre 1 et 31 inclus qui représente le jour du mois. | Day(#7/15/2020#) =>15 |
Exp | Mathématique | Spécifie e (la base des logarithmes népériens) élevé à une puissance. | Exp(10) |
Fix | Mathématique | Donne la partie entière d'un nombre | Fix(-99.8) =>-99 |
Hex | Mathématique | Donne une valeur de type String représentant un nombre sous forme hexadécimale. | Hex(3459) =>1CB |
Hour | Date et Heure | Donne un nombre entier compris entre 0 et 23 inclus qui représente l’heure du jour. | Hour(#8:25:45 AM#) =>8 |
Int | Mathématique | Donne la partie entière d’un nombre. La différence avec la fonction Fix réside dans le fait que si la valeur de l’argument "nombre" est négative, Int Donne le premier entier négatif inférieur ou égal à "nombre", tandis que Fix Donne le premier entier négatif supérieur ou égal à "nombre". | Int(-99,2) =>100 |
Log | Mathématique | Donne le logarithme népérien d’une valeur. | Log(22026.4657948067) =>10 |
Minute | Date et Heure | Donne un nombre entier compris entre 0 et 59 inclus qui représente les minutes. | Minute(#8:25:45 AM#) =>25 |
Month | Date et Heure | Donne un nombre entier compris entre 1 et 12 inclus qui représente le mois dans l’année. | Month(#7/15/2020#) =>7 |
MonthName | Date et Heure | Donne le nom du mois spécifié en nombre. | MonthName(2) =>février |
Now | Date et Heure | Donne la date et l'heure en cours | Now =>la date et l'heure du jour où la commande est exécutée |
Oct | Mathématique | Donne une chaîne représentant la valeur octale d'un nombre | Oct(500) =>764 |
Second | Date et Heure | Donne un nombre entier compris entre 0 et 59 inclus qui représente les secondes. | Second(#8:25:45 AM#) =>45 |
Str | Texte | Retourne la représentation String d'un nombre (avec un espace en début de chaîne en cas de valeur positive) | Str(12.23) =>" 12.23" |
StrComp | Texte | Renvoie une valeur qui indique le résultat d’une comparaison de chaîne de caractères [type de comparaison : gestion de la casse]. Si résultat à -1 : chaîne A inférieur à chaîne B, 0 : égal, 1 : chaîne A supérieur à chaîne B | StrComp("DOPHIS", "Dophis") =>-1 |
StrConv | Texte | Renvoie une valeur convertie au format indiqué. Argument à 3 permet de convertir la première lettre du mot en majuscule | StrConv("dophis", 3) =>Dophis |
String | Texte | Répète une caractère le nombre de fois spécifié | String(2, "m") |
StrReverse | Texte | Renvoie la chaîne de texte avec les caractères inversés | StrReverse("Dophis") =>sihpoD |
Time | Date et Heure | Donne la date et l'heure en cours | Time => l'heure du jour où la commande est exécutée |
Timer | Date et Heure | Spécifie le nombre de secondes écoulées depuis minuit. | Timer =>54914,32 |
TimeSerial | Date et Heure | Spécifie une date contenant une heure (heure, minute et seconde). | TimeSerial(8, 15, 36) => 08:15:36 |
TimeValue | Date et Heure | Donne une heure à partir d'heure en format string | TimeValue("08:15:54") =>08:15:54 |
Trim | Texte | Supprime les espaces en trop à droite et à gauche d'un texte | Trim(" Dophis ") =>Dophis |
UCase | Texte | Transforme en majuscule un texte | Ucase("Dophis") =>DOPHIS |
Val | Conversion | Spécifie la valeur numérique contenue à l'intérieur d'une chaîne de caractères. | Val("2020 est étrange") =>2020 |
Weekday | Date et Heure | Spécifie un nombre entier qui représente le jour dans la semaine. (passer en argument le premier jour de la semaine) | Weekday(#7/12/2020#, vbMonday) =>7 |
WeekdayName | Date et Heure | Retourne une valeur de type String contenant le nom du jour de semaine spécifié | WeekdayName(3, 0, vbMonday) =>mercredi (ou merc. Si -1 dans le second argument) |
Year | Date et Heure | Donne un nombre entier qui représente l’année. | Year(#7/15/2020#) =>2020 |
CurDir | Fichier | Retourne une chaîne représentant le chemin d'accès en cours | CurDir |
Dir | Fichier | Retourne une chaîne représentant le nom d'un fichier, d'un répertoire ou d'un dossier qui correspond à un modèle ou un attribut de fichier spécifié ou à l'étiquette de volume d'un lecteur | Dir(DossierParent, vbDirectory + vbHidden) |
EOF | Fichier | Donne une valeur qui indique si la fin d’un fichier est atteinte. | Do While Not EOF(1) |
FileAttr | Fichier | Retourne une valeur de type Long représentant le mode d'ouverture des fichiers avec l'instruction Open. | FileAttr(NumFile, 1) |
FileDateTime | Fichier | Donne la date et l’heure de la création ou de la dernière modification d’un fichier. | FileDateTime("NomFichier") |
FileLen | Fichier | Donne la taille d’un fichier en octets. Ne fonctionne pas pour un fichier ouvert. | FileLen("C:\a_temp\cExcel VBA.pdf") |
FreeFile | Fichier | Donne le numéro de fichier disponible suivant à l’usage de l’instruction Open. | FreeFile |
GetAttr | Fichier | Donne un nombre qui représente les attributs d’un fichier, d’un répertoire ou d’un dossier, ou l’étiquette d’un volume. | GetAttr(NomFichier) And vbArchive |
Loc | Fichier | Donne la position de lecture/écriture en cours dans un fichier ouvert. | Loc(2) |
LOF | Fichier | Donne la longueur en octets d’un fichier ouvert à l’aide de l’instruction Open. | LocF2) |
Seek | Fichier | Donne une valeur de type Long indiquant la position de lecture/écriture courante dans un fichier ouvert à l'aide de l'instruction Open. | Seek(2) |
DDB | Finance | Calcule l'amortissement d'un actif au cours d'une période spécifiée, en utilisant la méthode du double solde dégressif ou un autre taux d'amortissement spécifié. | DDB (10000, 1000, 5, 1) =>4000 |
FV | Finance | calcule la valeur future d'un prêt ou d'un investissement assorti de versements fixes périodiques et d'un taux d'intérêt fixe | FV(0.04 / 12, 60, -1000) => 66298,9781826364 |
IPmt | Finance | Calcule la partie intérêt du paiement, pendant une période spécifique. Donne une valeur qui indique le montant, sur une période donnée, d’une annuité basée sur des versements constants et périodiques, et sur un taux d’intérêt fixe. | IPmt(0.05 / 12, 1, 60, 60000) =>-250 |
IRR | Finance | Donne une valeur qui indique le taux de rendement interne d’une série de mouvements de trésorerie périodiques (paiements et encaissements). | |
MIRR | Finance | Donne une valeur qui indique le taux de rendement interne modifié d’une série de mouvements de trésorerie périodiques (paiements et encaissements). | |
Nper | Finance | Calcule le nombre de périodes pour un prêt ou un investissement, renvoie une valeur qui indique le nombre d’échéances d’une annuité basée sur des versements constants et périodiques, et sur un taux d’intérêt fixe. | NPer(0.04 / 12, -1000, 60000) => 67,054575288688 |
NPV | Finance | Calcule une valeur qui indique la valeur nette actuelle d’un investissement, calculée en fonction d’une série de mouvements de trésorerie périodiques (paiements et encaissements) et d’un taux d’escompte. | |
Pmt | Finance | Calcule les paiements périodiques constants requis pour payer un prêt ou un investissement à taux d'intérêt fixe. | Pmt(0.04 / 12, 60, 60000) =>-1104,99132331596 |
PPmt | Finance | Calcule la partie principale du paiement, pendant une période spécifique, pour un prêt ou un investissement payé par des paiements périodiques constants et à taux d'intérêt constant | PPmt(0.04 / 12, 2, 60, 60000) =>-908,007961060345 |
PV | Finance | Calcule la valeur actuelle d'un prêt ou d'un investissement assorti de versements fixes périodiques et d'un taux d'intérêt fixe. | PV(0.04 / 12, 72, -1000) =>63917,4367831485 |
Rate | Finance | Calcule le taux d'intérêt par période pour un prêt ou un investissement. | Rate(72, -1000, 60000) =>0,52% |
SLN | Finance | Calcule l'amortissement linéaire d'un actif pour une seule période. | SLN(20000, 1000, 10) => 3109,09090909091 |
SYD | Finance | calcule l' amortissement pour une période spécifiée dans la durée de vie d'un actif. | SYD(20000, 1000, 10, 2) => 3109,09090909091 |
Format | Format | Renvoie la chaîne de texte d'un nombre ou d'une date dans un format particulier | Format(0.255, "Percent") => 25,50% Format(#7/15/2021#, "dddd dd mmmm yyyy") => jeudi 15 juillet 2021 |
FormatCurrency | Format | Renvoie l'expression mise en forme sous forme de valeur monétaire | FormatCurrency(200.56044, 3) =>200,560 € |
FormatDateTime | Format | Renvoie une expression formatée sous forme de date ou d’heure. | FormatDateTime(#7/15/2021#, vbLongDate) =>jeudi 15 juillet 2021 |
FormatNumber | Format | applique un format numérique à une expression numérique et renvoie le résultat sous forme de chaîne | FormatNumber(10000,[NbDecimal],[Inclus0Nonsignificatif],[NegDansParenthese],[SeparateurMillier]) FormatNumber(100000, 1, vbFalse, vbFalse, vbTrue) =>100 000,0 |
FormatPercent | Format | Renvoie l'expression formatée en pourcentage | FormatPercent(10000,[NbDecimal],[Inclus0Nonsignificatif],[NegDansParenthese],[SeparateurMillier]) FormatPercent(0.55, 1, vbFalse, vbFalse, vbTrue) =>55,0% |
CVErr | Erreur | Renvoie un type d'erreur spécifique | CVErr (11) =>Simule l'erreur 11 |
Error | Erreur | La fonction d'erreur VBA renvoie le message d'erreur correspondant à un code d'erreur fourni | Debug.Print Error(11) =>"Division par zero" |
CallByName | Gestion d'objet | Renvoie, définit ou exécute une méthode ou une propriété d'un objet | CallByName Nom, txtProperty.Text, VbLet, txtValue.Text |
CreateObject | Gestion d'objet | Crée et renvoie un objet OLE Automation. | Set ExcelSheet = CreateObject("Excel.Sheet") |
GetObject | Gestion d'objet | Retourne une référence à un objet OLE Automation. | Dim obOutlook As Object Set obOutlook = GetObject( , "Outlook.Application") |
Spc | Impression | Insère un nombre spécifié (n) d'espaces lors de l'écriture ou de l'affichage de texte. Fonction utilisée avec l’instruction Print# | Spc(20) =>20 espaces |
Tab | Impression | Utilisé avec l'instruction Print # ou la méthode Print pour positionner la sortie. | Tab(20) => 20 Tab |
Partition | Mathématique | Donne une chaîne indiquant dans quelle plage particulière elle appartient (String) | Partition(99, 0, 100, 10) =>90: 99 Partition(25, 0, 100, 10) =>20: 29 |
Rnd | Mathématique | Donne une valeur de type Single contenant un nombre aléatoire. | Rnd =>valeur variable >=0 et <1 |
Round | Mathématique | Donne un nombre arrondi à un nombre de décimales défini. | Round(4.2587, 2) =>4.26 |
Sgn | Mathématique | Donne un nombre entier indiquant le signe d’un nombre : si négatif => -1, 0 => 0, positif =>1 | Sgn(-14) =>-1 |
Sin | Mathématique | Donne le sinus d’un angle. | Sin(45) |
Sqr | Mathématique | Donne la racine carrée d’un nombre. | Sqr(4) =>2 |
Tan | Mathématique | Donne la tangente d’un angle. | Tan(4) |
DoEvents | Système | Suspend l’exécution afin que le système d’exploitation puisse traiter d’autres événements. | DoEvents |
Environ | Système | Donne la valeur associée à une variable d’environnement du système d’exploitation. | Eviron("Username") =>valeur username de l'utilisateur |
QBColor | Système | Donne une valeur indiquant le code de couleur RVB correspondant au numéro de couleur indiqué (Liste de couleur de 1 à 15). | QBColor(10) = 65280 RGB(0,255,0) = 65280 |
RGB | Système | Donne un nombre entier qui représente la valeur d’une couleur RVB. | RGB(0,255,0) = 65280 => vert |
Shell | Système | Exécute un programme .exe | Shell "C:\Windows\System32\calc.exe" => lance la calculatrice |
TypeName | Système | Définit une chaîne qui fournit des informations sur une variable. | Dim variable As String Debug.Print TypeName(variable) => String |
VarType | Système | Définit une valeur Integer qui indique le sous-type d’une variable. | Dim variable As String Debug.Print VarType(variable) =>8 |
Array | Tableau | Définit un tableau de données (Variant) | Array(100, 25, 30) =>Array(2) => 25 |
Filter | Tableau | Renvoie un tableau filtré | voiture = Array("Peugeot 3008", "VW Golf", "Peugeot 4008", "VW Touran") voitureVW = filter(voiture, "VW") =>"VW Golf", "VW Touran" |
IsArray | Tableau | Renvoie une valeur qui indique si une variable est un tableau ou non. | IsArray(voiture) =>TRUE |
Join | Tableau | La fonction Join concatène les éléments contenu dans un tableau | voiture = Array("Peugeot 3008", "VW Golf", "Peugeot 4008", "VW Touran") ListeVoiture = Join(voiture) =>"Peugeot 3008 VW Golf Peugeot 4008 VW Touran" |
LBound | Tableau | Donne le plus petit indice disponible pour la dimension indiquée d’un tableau. | LBound(voiture) =>0 |
Split | Tableau | Renvoie un tableau à partir d'une chaîne de caractères dont les éléments sont séparés par un séparateur défini | Liste=split("Peugeot VW Mercedes"," ") =>split(1) => VW |
UBound | Tableau | Donne le plus grand indice disponible pour la dimension indiquée d’un tableau. | LBound(voiture) =>3 |
Asc | Texte | Renvoie un entier représentant le code de caractère pour le premier caractère d'une chaîne fournie. | Asc("M") =>77 |
Chr | Texte | Donne une valeur de type String contenant le caractère associé au code du caractère indiqué. | Chr(77) =>M |
InStr | Texte | Donne la position de la première occurrence d’une chaîne de caractères à l’intérieur d’une autre chaîne de caractères. | InStr(1, "Dophis", "p") =>3 |
InStrRev | Texte | Donne la position d’une occurrence d’une chaîne de caractères dans une autre, en commençant la recherche par la fin de la chaîne. | InStrRev("Dophis", "i") =>5 |
LCase | Texte | Transforme le texte en minuscule | Lcase("Dophis") =>dophis |
Left | Texte | Donne x caractères à gauche d'une chaîne de caractères | Left("Dophis",2) =>Do |
Len | Texte | Donne le nombre de caractère d'un chaîne de caractères | Len("Dophis") =>6 |
LTrim | Texte | Supprime les espaces en trop à gauche d'un texte | LTrim(" Dophis") =>Dophis |
Mid | Texte | Extrait un nombre indiqué de caractères d'une chaîne de caractères de caractères, en précisant le point de départ de l'extraction. | Mid("Dophis", 3, 2) =>ph |
Replace | Texte | Remplace un texte par un autre texte | Replace("Expert Excel", "Excel", "VBA") =>Expert VBA |
Right | Texte | Donne x caractères à droite d'une chaîne de caractères | Right("Dophis",2) =>is |
RTrim | Texte | Supprime les espaces en trop à droite d'un texte | LTrim("Dophis ") =>Dophis |
Space | Texte | Renvoie autant d'espace que spécifié | "Expert" & Space(5) & "Access" =>Expert Access |
Comment insérer une fonction avec les bons arguments
– Dans l’éditeur VBE commencer à taper la fonction, par exemple 2 lettres
– Utiliser le raccourci VBA : CTRL ESPACE, vous pouvez alors sélectionner la fonction que vous souhaitez utiliser sans faire de faute de frappe
-Une fois que la fonction est saisie, après avoir ouvert la parenthèse, l’assistant vous propose une aide qui résume les différents arguments à passer à la fonction.
– Les arguments entre [] sont optionnels. Vous pouvez décider de ne pas les saisir. La valeur par défaut de cet argument sera alors pris en compte.
– L’ordre des arguments est importants à respecter. Si vous souhaitez ignorer certains arguments optionnels mais pas le dernier, il faudra positionner les virgules et ne passer aucun argument, par exemple :
Replace(« Dophis », « o », « au », , , vbBinaryCompare)
Sur une fonction, il est possible d’utiliser le raccourci CTRL i pour faire afficher l’info-bulle qui présente les différents arguments.
Comment trouver la bonne fonction ?
A partir de la liste ci-dessous, vous disposez d’une zone de recherche par mot clé qui vous permet d’identifier et trouver la fonction VBA dont vous avez besoin.
Nous vous apportons notre expertise pour mettre en oeuvre ces différentes fonction par l’intermédiaire de formation VBA : en présentiel dans votre entreprise à partir de vos propres fichiers ou par VisioFormation ou d’une formation VBA Access.