PaliSkill
Introduction au VBA

Leçon 10 / 10 — Chapitre 7: Mise en pratique : automatiser la paie et les RH

Consolider les effectifs de plusieurs sites

Cette leçon combine Dir() et Workbooks.Open pour additionner automatiquement l'effectif de plusieurs sites, chacun suivi dans son propre classeur, sans avoir à ouvrir chaque fichier manuellement.

Sub ConsoliderEffectifs()
    Dim nomFichier As String
    Dim classeurSite As Workbook
    Dim effectifTotal As Integer
    effectifTotal = 0

    nomFichier = Dir("C:\Sites\*.xlsx")

    Do While nomFichier <> ""
        Set classeurSite = Workbooks.Open("C:\Sites\" & nomFichier)
        effectifTotal = effectifTotal + classeurSite.Worksheets(1).Range("B1").Value
        classeurSite.Close SaveChanges:=False
        nomFichier = Dir()
    Loop

    MsgBox effectifTotal
End Sub

Chaque fichier .xlsx du dossier "Sites" est ouvert tour à tour, son effectif en B1 de la première feuille est ajouté au total général, puis le classeur est refermé avant de passer au fichier suivant renvoyé par Dir().

À vous de jouer : dans vos propres mots, expliquez ce qui se passerait si la ligne nomFichier = Dir() était oubliée à l'intérieur de la boucle Do While.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 76 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès