💻 Cours de programmation en VBA 📊

🛄 Les objets

Dans un programme, il est souvent nécessaire de manipuler plusieurs informations liées entre elles, par exemple les données d’un contact :


Dim Nom As String
Dim Prenom As String
Dim Adresse As String
Dim CP As String
Dim Ville As String
Dim Date_naissance As Date
Dim Num_contrat As Integer
Dim Prix As Currency

Nom = "Fauconnier"
Prenom = "Albert"
Adresse = "220 Avenue de la République"
CP = "92000"
Ville = "Nanterre"
Date_naissance = DateSerial(1995, 8, 28)
Num_contrat = 135
Prix = 4500.15

⚠ Le problème : si vous devez gérer plusieurs contacts, vous devez créer et remplir toutes ces variables pour chaque personne. Cela devient rapidement fastidieux et source d’erreurs.

Solution : les classes ou types personnalisés

Une classe ou un type personnalisé est une structure qui regroupe plusieurs variables sous un même nom. Chaque "champ" est identifiable par un nom, ce qui rend le code beaucoup plus lisible et facile à maintenir.


Public Type Contact
    Nom As String
    Prenom As String
    Adresse As String
    CP As String
    Ville As String
    Date_naissance As Date
    Num_contrat As Integer
    Prix As Currency
End Type

💡 Conseil : placez cette déclaration dans un module séparé pour pouvoir l’utiliser partout dans votre projet.

Utiliser un contact


Sub Utiliser_Contact()
    Dim Client_1 As Contact

    ' Remplissage des champs avec With ... End With
    With Client_1
        .Nom = "Fauconnier"
        .Prenom = "Albert"
        .Adresse = "220 Avenue de la République"
        .CP = "92000"
        .Ville = "Nanterre"
        .Date_naissance = DateSerial(1995, 8, 28)
        .Num_contrat = 135
        .Prix = 4500.15
    End With

    ' Affichage d'un message avec le contact
    Afficher_message Client_1
End Sub

Sub Afficher_message(contact As Contact)
    With contact
        MsgBox "Bonjour " & .Prenom & " " & .Nom
    End With
End Sub

Avantages des classes et types personnalisés

Exemple pratique : gérer plusieurs contacts


Dim Clients(1 To 3) As Contact

' Remplissage du premier client
With Clients(1)
    .Nom = "Fauconnier"
    .Prenom = "Albert"
End With

' Remplissage du deuxième client
With Clients(2)
    .Nom = "Dupont"
    .Prenom = "Sophie"
End With

' Boucle pour afficher tous les clients
For i = 1 To 2
    Afficher_message Clients(i)
Next i

⚡ Ici, on peut gérer un nombre illimité de contacts simplement en créant un tableau de contacts et en remplissant chaque instance. Le code reste clair et structuré.

Pour approfondir : Documentation détaillée sur les classes VBA