L’aventure généalogique de Pierre avec VBA
Pierre, le frère de Marie, décide d’utiliser VBA dans Excel pour continuer le travail sur l’arbre généalogique de la famille Durand. Suivons ses premiers pas.
Commentaires : Les notes de famille
Pierre apprend à documenter son travail avec des commentaires.
Une ligne
Pour une note rapide sur un ancêtre :
' Jean Durand, né en 1920
Multiligne
Pour des histoires familiales plus détaillées :
' Pierre Durand, né en 1950
' Passionné de jardinage
' A transmis son amour de la nature à ses enfants
Variables : Le carnet d’adresses familial
Pierre découvre comment stocker les informations de sa famille.
Base
Pour enregistrer le nom de famille :
Dim nomFamille As String
nomFamille = "Durand"
Plusieurs variables en une ligne
Pour noter rapidement les informations d’un membre :
Dim prenom As String, nom As String, anneeNaissance As Integer
prenom = "Pierre": nom = "Durand": anneeNaissance = 1978
Types
Pierre apprend à utiliser différents types de données pour organiser ses informations :
Dim age As Integer
Dim ville As String
Dim enfants As Variant
Dim infosMarie As Object
age = 45
ville = "Paris"
enfants = Array("Luc", "Sophie")
Set infosMarie = CreateObject("Scripting.Dictionary")
With infosMarie
.Add "Nom", "Durand"
.Add "Prenom", "Marie"
.Add "AnneeNaissance", 1980
End With
Affichage des variables
Pierre apprend à afficher le contenu de ses variables :
Debug.Print "Nom de famille : " & nomFamille
Debug.Print "Enfants : " & Join(enfants, ", ")
Debug.Print "Infos de Marie : " & infosMarie("Prenom") & " " & infosMarie("Nom")
Opérateurs : Analyser l’arbre familial
Pierre utilise des opérateurs pour manipuler ses données familiales.
Affichage des résultats
Pierre combine différents opérateurs pour afficher ses analyses :
Debug.Print prenom & " " & nom & " est un membre de la famille Durand : " & _
(nom = "Durand") & ". Né(e) en " & anneeNaissance & _
", son âge est de " & (Year(Date) - anneeNaissance) & " ans."
Fonctions : Automatiser les tâches généalogiques
Pierre crée des fonctions pour simplifier ses recherches.
Créer et appeler une fonction
Pour calculer l’âge à partir de l’année de naissance :
Function CalculerAge(anneeNaissance As Integer) As Integer
CalculerAge = Year(Date) - anneeNaissance
End Function
Dim agePierre As Integer
agePierre = CalculerAge(1978)
Debug.Print "Age de Pierre : " & agePierre
Tableaux & Dictionnaires : Organiser l’arbre généalogique
Pierre utilise des structures de données pour mieux organiser ses informations.
Manipulation tableau et dictionnaire
Dim cousins(2) As String
cousins(0) = "Alex"
cousins(1) = "Emma"
cousins(2) = "Tom"
cousins(1) = "Émilie" ' Modifier une valeur
Dim infosPierre As Object
Set infosPierre = CreateObject("Scripting.Dictionary")
With infosPierre
.Add "Nom", "Durand"
.Add "Prenom", "Pierre"
.Item("Ville") = "Lyon" ' Ajouter/Modifier une valeur
.Remove "Prenom" ' Supprimer une valeur
End With
Structure conditionnelle : Analyser les relations familiales
Pierre utilise des conditions pour classer les membres de sa famille.
If…Else…End If
Dim statut As String
If anneeNaissance < 1950 Then
statut = "Ancêtre"
Else
statut = "Génération récente"
End If
Select Case
Dim generation As String
Select Case anneeNaissance
Case Is < 1950
generation = "Anciens"
Case 1950 To 1979
generation = "Parents"
Case Else
generation = "Jeunes"
End Select
Boucles : Parcourir l’arbre généalogique

Pierre apprend à parcourir efficacement ses données familiales.
For…Next
Dim i As Integer, enfantsNumerotes As String
For i = LBound(enfants) To UBound(enfants)
enfantsNumerotes = enfantsNumerotes & "Enfant " & (i + 1) & ": " & enfants(i) & vbNewLine
Next i
For Each…Next
Dim membre As Variant, infoMembre As String
For Each membre In infosMarie.Keys
infoMembre = infoMembre & membre & ": " & infosMarie(membre) & vbNewLine
Next membre
Do While…Loop
Dim anneeActuelle As Integer, generations As Integer
anneeActuelle = 2023
generations = 0
Do While anneeActuelle > 1850
generations = generations + 1
anneeActuelle = anneeActuelle - 25
Loop
Conclusion
Pierre a découvert les bases de VBA dans Excel pour gérer l’arbre généalogique de la famille Durand. Il peut maintenant stocker, manipuler et analyser les informations familiales de manière simple et efficace, en complément du travail de sa sœur Marie, tout en profitant des fonctionnalités d’Excel pour visualiser et organiser les données.
Il peut maintenant stocker, manipuler et analyser les informations familiales de manière simple et efficace, en complément du travail de sa sœur Marie. Si vous souhaitez aller plus loin pour apprendre le VBA c’est ICI.