💻 Cours de programmation en VBA 📊

💭 Rappels

Déclaration de variables et assignation


Dim variable1 As String
variable1 = "Cette variable est une chaîne de caractères"

Opérations numériques (fonction supplémentaires)


Dim v1 As Double, v2 As Double
Dim r As Variant

Randomize               ' Initialisation du générateur de nombres aléatoires

v1 = 5
v2 = 2

r = Rnd                 ' Donne un nombre aléatoire entre 0 et 1
r = Abs(v1 - v2)        ' Valeur absolue : r = 3
r = Sqr(v1)             ' Racine carrée : r = 2,236...
r = Int(v1 / v2)        ' Partie entière : r = 2
r = Round(v1 / v2, 2)   ' Arrondi à 2 décimales : r = 2,50
r = Fix(-v1 / v2)       ' Partie entière vers 0 : r = -2
r = Sin(v1)             ' Sinus de v1 (en radians)
r = Cos(v1)             ' Cosinus de v1 (en radians)
r = Tan(v1)             ' Tangente de v1 (en radians)
r = Exp(1)              ' e^1
r = Log(v1)             ' Logarithme naturel
r = Round(v1 ^ v2, 0)   ' Puissance : v1^v2 = 25, arrondi 0 décimales

Opérations sur les chaînes de caractères (fonctions supplémentaires)


Dim c1 As String, c2 As String
Dim rStr As Variant

c1 = "je m'appelle Thomas"
c2 = "j'ai 28 ans"

rStr = LTrim(c1)           ' Supprime les espaces à gauche : "je m'appelle Thomas"
rStr = RTrim(c1)           ' Supprime les espaces à droite
rStr = Trim(c1)            ' Supprime les espaces à gauche et droite
rStr = StrReverse(c1)      ' Renverse la chaîne : "samohT ell'apm ej"
rStr = StrComp(c1, c2)     ' Comparaison de chaînes : 1 = différent, 0 = identique
rStr = StrConv(c1, vbProperCase)  ' Met la première lettre de chaque mot en majuscule
rStr = StrConv(c1, vbUpperCase)   ' Tout en majuscule
rStr = StrConv(c1, vbLowerCase)   ' Tout en minuscule
rStr = InStrRev(c1, "a")   ' Position du dernier "a" : 11
rStr = Left(c1, 7)         ' "je m'ap"
rStr = Right(c1, 6)        ' "Thomas"
rStr = Mid(c1, 6, 4)       ' "appl"
rStr = Replace(c1, "Thomas", "Alice")  ' "je m'appelle Alice"
rStr = Space(5)             ' Chaîne de 5 espaces : "     "
rStr = String(8, "*")       ' "********"
rStr = Format(1234.567, "0.00") ' Formate nombre : "1234.57"
rStr = Format(Date, "dd/mm/yyyy")  ' Formate date : "23/01/2026"

Conversion de type et fonctions complémentaires


Dim expression As Variant

CBool(expression)   ' Conversion en Boolean
CByte(expression)   ' Conversion en Byte
CDate(expression)   ' Conversion en Date
CDbl(expression)    ' Conversion en Double
CInt(expression)    ' Conversion en Integer
CLng(expression)    ' Conversion en Long
CStr(expression)    ' Conversion en String
CLng(Round(123.7)) ' Exemple : arrondi et conversion en Long

Fonctions personnalisées


' Exemple : carré moins 1
Dim resultat As Double
resultat = carre_moins_1(5)  ' retourne 24

' Exemple : subroutine affichage
Afficher_message "Bonjour!"

Sub Afficher_message(message As String)
    MsgBox message
End Sub

Function carre_moins_1(valeur As Double) As Double
    carre_moins_1 = valeur * valeur - 1
End Function

' Exemple : fonction qui calcule la longueur d'une chaîne sans espaces
Function LenSansEspaces(chaine As String) As Integer
    LenSansEspaces = Len(Replace(chaine, " ", ""))
End Function

Liens utiles

Excel-Pratique

Developpez.com :