🛄 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
- Regrouper plusieurs informations dans une seule variable.
- Facilite la lecture et la maintenance du code.
- Permet de manipuler facilement plusieurs instances (ex : plusieurs clients).
- Évite les erreurs et répétitions : plus besoin de déclarer chaque variable séparément pour chaque personne.
- Compatible avec les procédures et fonctions, on peut passer l’ensemble du contact comme paramètre.
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