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.

FonctionCatégorieExplicationExemple
ChooseConditionExtraire une valeur d’une liste, à partir de son indice.Choose(2, "janvier", "février", "mars", "avril")
=>février
IifConditionDonne l'un ou l'autre de deux arguments selon l'évaluation d'une expression.Iif(Test, valeur si vrai, valeur sur faux)
IsDateConditionIndique si une expression est une date : VRAI FAUXIsDate(Variable)
IsEmptyConditionIndique si une variable a été initialisée ou non : VRAI FAUXIsEmpty(Variable)
IsErrorConditionIndique si une expression est une valeur d’erreur ou non : VRAI FAUXIsError(Variable)
IsMissingConditionIndique si un argument facultatif a été passé à une procédure : VRAI FAUXFunction Test(Optional VarA)
If IsMissing(VarA) Then
IsNullConditionIndique si une expression contient ou non des données Null : VRAI FAUXIsNull(Variable)
IsNumericConditionIndique si une expression peut être ou non interprétée comme un nombre : VRAI FAUXIsNumeric(Variable)
IsObjectConditionIndique si un identificateur représente une variable objet : VRAI FAUXIsObject(Variable)
SwitchConditionAnalyse 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
AbsMathématiqueSpécifie la valeur absolue d’un nombre.Abs(-18)
=18
AtnMathématiqueSpécifie l’arctangente d’un nombre.Atn(25)
=> 1,53081763967161
CBoolConversionEvalue une expression et renvoie le résultat sous la forme d'un type de données BooleanCbool(Var)
=>TRUE ou FALSE
CByteConversionConvertit une expression en données de type Byte.CByte (5.65)
=>6
CCurConversionConvertit une expression en données de type Currency.CCur (65.555555)
=>65,5556
CDateConversionConvertit une expression en données de type Date.CDate("15 mai 2021")
=>15/05/2021
CDblConversionconvertit 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
CosMathématiqueSpécifie le cosinus d’un angle.Cos(1.5)
DateDate et HeureRenvoie la date du jourDate
=> la date du jour où la commande est exécutée
DateAddDate et HeureAjoute 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
DateDiffDate et HeureDonne 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
DatePartDate et HeureDonne la partie spécifiée d'une date donnée (semaine, trimestre, mois …)DatePart("ww", #7/15/2020#, vbMonday)
=>Semaine 29
DateSerialDate et HeureDonne une date correspondant à une année, un mois et un jour déterminé.DateSerial(2020, 7, 14)
=>14/07/2020
DateValueDate et HeureDonne une date à partir d'une date saisie en texte.DateValue("15 janvier 2021")
=>15/01/2021
DayDate et HeureDonne un nombre entier compris entre 1 et 31 inclus qui représente le jour du mois.Day(#7/15/2020#)
=>15
ExpMathématiqueSpécifie e (la base des logarithmes népériens) élevé à une puissance.Exp(10)
FixMathématiqueDonne la partie entière d'un nombreFix(-99.8)
=>-99
HexMathématiqueDonne une valeur de type String représentant un nombre sous forme hexadécimale.Hex(3459)
=>1CB
HourDate et HeureDonne un nombre entier compris entre 0 et 23 inclus qui représente l’heure du jour.Hour(#8:25:45 AM#)
=>8
IntMathématiqueDonne 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
LogMathématiqueDonne le logarithme népérien d’une valeur.Log(22026.4657948067)
=>10
MinuteDate et HeureDonne un nombre entier compris entre 0 et 59 inclus qui représente les minutes. Minute(#8:25:45 AM#)
=>25
MonthDate et HeureDonne un nombre entier compris entre 1 et 12 inclus qui représente le mois dans l’année.Month(#7/15/2020#)
=>7
MonthNameDate et HeureDonne le nom du mois spécifié en nombre.MonthName(2)
=>février
NowDate et HeureDonne la date et l'heure en coursNow
=>la date et l'heure du jour où la commande est exécutée
OctMathématiqueDonne une chaîne représentant la valeur octale d'un nombreOct(500)
=>764
SecondDate et HeureDonne un nombre entier compris entre 0 et 59 inclus qui représente les secondes. Second(#8:25:45 AM#)
=>45
StrTexteRetourne 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"
StrCompTexteRenvoie 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 BStrComp("DOPHIS", "Dophis")
=>-1
StrConvTexteRenvoie une valeur convertie au format indiqué. Argument à 3 permet de convertir la première lettre du mot en majusculeStrConv("dophis", 3)
=>Dophis
StringTexteRépète une caractère le nombre de fois spécifiéString(2, "m")
StrReverseTexteRenvoie la chaîne de texte avec les caractères inversésStrReverse("Dophis")
=>sihpoD
TimeDate et HeureDonne la date et l'heure en coursTime
=> l'heure du jour où la commande est exécutée
TimerDate et HeureSpécifie le nombre de secondes écoulées depuis minuit.Timer
=>54914,32
TimeSerialDate et HeureSpécifie une date contenant une heure (heure, minute et seconde).TimeSerial(8, 15, 36)
=> 08:15:36
TimeValueDate et HeureDonne une heure à partir d'heure en format stringTimeValue("08:15:54")
=>08:15:54
TrimTexteSupprime les espaces en trop à droite et à gauche d'un texteTrim(" Dophis ")
=>Dophis
UCaseTexteTransforme en majuscule un texteUcase("Dophis")
=>DOPHIS
ValConversionSpécifie la valeur numérique contenue à l'intérieur d'une chaîne de caractères.Val("2020 est étrange")
=>2020
WeekdayDate et HeureSpé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
WeekdayNameDate et HeureRetourne 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)
YearDate et HeureDonne un nombre entier qui représente l’année.Year(#7/15/2020#)
=>2020
CurDirFichierRetourne une chaîne représentant le chemin d'accès en coursCurDir
DirFichierRetourne 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 lecteurDir(DossierParent, vbDirectory + vbHidden)
EOFFichierDonne une valeur qui indique si la fin d’un fichier est atteinte.Do While Not EOF(1)
FileAttrFichierRetourne une valeur de type Long représentant le mode d'ouverture des fichiers avec l'instruction Open.FileAttr(NumFile, 1)
FileDateTimeFichierDonne la date et l’heure de la création ou de la dernière modification d’un fichier.FileDateTime("NomFichier")
FileLenFichierDonne la taille d’un fichier en octets. Ne fonctionne pas pour un fichier ouvert.FileLen("C:\a_temp\cExcel VBA.pdf")
FreeFileFichierDonne le numéro de fichier disponible suivant à l’usage de l’instruction Open.FreeFile
GetAttrFichierDonne 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
LocFichierDonne la position de lecture/écriture en cours dans un fichier ouvert.Loc(2)
LOFFichierDonne la longueur en octets d’un fichier ouvert à l’aide de l’instruction Open.LocF2)
SeekFichierDonne une valeur de type Long indiquant la position de lecture/écriture courante dans un fichier ouvert à l'aide de l'instruction Open.Seek(2)
DDBFinanceCalcule 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
FVFinancecalcule 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 fixeFV(0.04 / 12, 60, -1000)
=> 66298,9781826364
IPmtFinanceCalcule 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
IRRFinanceDonne une valeur qui indique le taux de rendement interne d’une série de mouvements de trésorerie périodiques (paiements et encaissements).
MIRRFinanceDonne une valeur qui indique le taux de rendement interne modifié d’une série de mouvements de trésorerie périodiques (paiements et encaissements).
NperFinanceCalcule 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
NPVFinanceCalcule 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.
PmtFinanceCalcule 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
PPmtFinanceCalcule 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 constantPPmt(0.04 / 12, 2, 60, 60000)
=>-908,007961060345
PVFinanceCalcule 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
RateFinanceCalcule le taux d'intérêt par période pour un prêt ou un investissement.Rate(72, -1000, 60000)
=>0,52%
SLNFinanceCalcule l'amortissement linéaire d'un actif pour une seule période.SLN(20000, 1000, 10)
=> 3109,09090909091
SYDFinancecalcule 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
FormatFormatRenvoie 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
FormatCurrencyFormatRenvoie l'expression mise en forme sous forme de valeur monétaireFormatCurrency(200.56044, 3)
=>200,560 €
FormatDateTimeFormatRenvoie une expression formatée sous forme de date ou d’heure.FormatDateTime(#7/15/2021#, vbLongDate)
=>jeudi 15 juillet 2021
FormatNumberFormatapplique un format numérique à une expression numérique et renvoie le résultat sous forme de chaîneFormatNumber(10000,[NbDecimal],[Inclus0Nonsignificatif],[NegDansParenthese],[SeparateurMillier])
FormatNumber(100000, 1, vbFalse, vbFalse, vbTrue)
=>100 000,0
FormatPercentFormatRenvoie l'expression formatée en pourcentageFormatPercent(10000,[NbDecimal],[Inclus0Nonsignificatif],[NegDansParenthese],[SeparateurMillier])
FormatPercent(0.55, 1, vbFalse, vbFalse, vbTrue)
=>55,0%
CVErrErreurRenvoie un type d'erreur spécifiqueCVErr (11)
=>Simule l'erreur 11
ErrorErreurLa fonction d'erreur VBA renvoie le message d'erreur correspondant à un code d'erreur fourniDebug.Print Error(11)
=>"Division par zero"
CallByNameGestion d'objetRenvoie, définit ou exécute une méthode ou une propriété d'un objetCallByName Nom, txtProperty.Text, VbLet, txtValue.Text
CreateObjectGestion d'objetCrée et renvoie un objet OLE Automation.Set ExcelSheet = CreateObject("Excel.Sheet")
GetObjectGestion d'objetRetourne une référence à un objet OLE Automation.Dim obOutlook As Object
Set obOutlook = GetObject( , "Outlook.Application")
SpcImpressionInsè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
TabImpressionUtilisé avec l'instruction Print # ou la méthode Print pour positionner la sortie.Tab(20)
=> 20 Tab
PartitionMathématiqueDonne 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
RndMathématiqueDonne une valeur de type Single contenant un nombre aléatoire.Rnd
=>valeur variable >=0 et <1
RoundMathématiqueDonne un nombre arrondi à un nombre de décimales défini.Round(4.2587, 2)
=>4.26
SgnMathématiqueDonne un nombre entier indiquant le signe d’un nombre : si négatif => -1, 0 => 0, positif =>1Sgn(-14)
=>-1
SinMathématiqueDonne le sinus d’un angle.Sin(45)
SqrMathématiqueDonne la racine carrée d’un nombre.Sqr(4)
=>2
TanMathématiqueDonne la tangente d’un angle.Tan(4)
DoEventsSystèmeSuspend l’exécution afin que le système d’exploitation puisse traiter d’autres événements.DoEvents
EnvironSystèmeDonne la valeur associée à une variable d’environnement du système d’exploitation. Eviron("Username")
=>valeur username de l'utilisateur
QBColorSystèmeDonne 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
RGBSystèmeDonne un nombre entier qui représente la valeur d’une couleur RVB.RGB(0,255,0) = 65280
=> vert
ShellSystèmeExécute un programme .exeShell "C:\Windows\System32\calc.exe"
=> lance la calculatrice
TypeNameSystèmeDéfinit une chaîne qui fournit des informations sur une variable.Dim variable As String
Debug.Print TypeName(variable)
=> String
VarTypeSystèmeDéfinit une valeur Integer qui indique le sous-type d’une variable.Dim variable As String
Debug.Print VarType(variable)
=>8
ArrayTableauDéfinit un tableau de données (Variant)Array(100, 25, 30)
=>Array(2) => 25
FilterTableauRenvoie un tableau filtrévoiture = Array("Peugeot 3008", "VW Golf", "Peugeot 4008", "VW Touran")
voitureVW = filter(voiture, "VW")
=>"VW Golf", "VW Touran"
IsArrayTableauRenvoie une valeur qui indique si une variable est un tableau ou non.IsArray(voiture)
=>TRUE
JoinTableauLa fonction Join concatène les éléments contenu dans un tableauvoiture = Array("Peugeot 3008", "VW Golf", "Peugeot 4008", "VW Touran")
ListeVoiture = Join(voiture)
=>"Peugeot 3008 VW Golf Peugeot 4008 VW Touran"
LBoundTableauDonne le plus petit indice disponible pour la dimension indiquée d’un tableau. LBound(voiture)
=>0
SplitTableauRenvoie un tableau à partir d'une chaîne de caractères dont les éléments sont séparés par un séparateur définiListe=split("Peugeot VW Mercedes"," ")
=>split(1) => VW
UBoundTableauDonne le plus grand indice disponible pour la dimension indiquée d’un tableau.LBound(voiture)
=>3
AscTexteRenvoie un entier représentant le code de caractère pour le premier caractère d'une chaîne fournie.Asc("M")
=>77
ChrTexteDonne une valeur de type String contenant le caractère associé au code du caractère indiqué.Chr(77)
=>M
InStrTexteDonne 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
InStrRevTexteDonne 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
LCaseTexteTransforme le texte en minusculeLcase("Dophis")
=>dophis
LeftTexteDonne x caractères à gauche d'une chaîne de caractèresLeft("Dophis",2)
=>Do
LenTexteDonne le nombre de caractère d'un chaîne de caractèresLen("Dophis")
=>6
LTrimTexteSupprime les espaces en trop à gauche d'un texteLTrim(" Dophis")
=>Dophis
MidTexteExtrait 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
ReplaceTexteRemplace un texte par un autre texteReplace("Expert Excel", "Excel", "VBA")
=>Expert VBA
RightTexteDonne x caractères à droite d'une chaîne de caractèresRight("Dophis",2)
=>is
RTrimTexteSupprime les espaces en trop à droite d'un texteLTrim("Dophis ")
=>Dophis
SpaceTexteRenvoie 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.

replace-argument-vba
replace-argument-vba

– 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.

S’abonner
Notification pour
guest

0 Commentaires
Le plus récent
Le plus ancien Le plus populaire
Commentaires en ligne
Afficher tous les commentaires