Créer une plage dynamique pour la formation d’équipes, Excel VBA
Voici le code VBA détaillé pour créer une plage dynamique pour la formation d’équipes dans Excel, accompagné d’une explication étape par étape.
Étape 1 : Ouvrir Excel et l’éditeur Visual Basic for Applications (VBA)
1. Ouvrez Excel.
2. Appuyez sur ALT + F11
pour ouvrir l’éditeur VBA.
Étape 2 : Insérer un nouveau module
1. Dans l’éditeur VBA, cliquez sur Insertion → Module.
2. Une nouvelle fenêtre de module apparaîtra.
Étape 3 : Écrire le code VBA
Voici le code VBA détaillé :
Option Explicit Sub CreateDynamicTeamBuildingRange() Dim ws As Worksheet Dim lastRow As Long Dim rng As Range Dim dynamicRangeName As String ' Définir la feuille de calcul où se trouvent les données des équipes Set ws = ThisWorkbook.Sheets("Teams") ' Trouver la dernière ligne avec des données dans la colonne A (ajuster si nécessaire) lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Définir la plage dynamique Set rng = ws.Range("A2:A" & lastRow) ' Nommer la plage dynamique dynamicRangeName = "TeamMembers" ' Supprimer la plage nommée existante si elle existe On Error Resume Next ThisWorkbook.Names(dynamicRangeName).Delete On Error GoTo 0 ' Créer une nouvelle plage nommée ThisWorkbook.Names.Add Name:=dynamicRangeName, RefersTo:=rng ' Confirmer à l'utilisateur MsgBox "La plage dynamique '" & dynamicRangeName & "' a été créée de A2:A" & lastRow, vbInformation, "Succès" End Sub
Étape 4 : Enregistrer le projet VBA
1. Cliquez sur Fichier → Enregistrer sous.
2. Choisissez le format Classeur Excel avec macros (.xlsm).
3. Enregistrez le fichier.
Explication du Code :
1. Déclaration des variables :
ws
est utilisée pour stocker la référence à la feuille de calcul nommée « Teams ».lastRow
détermine la dernière ligne non vide de la colonne A.rng
est utilisée pour contenir la plage dynamique.dynamicRangeName
contient le nom de la plage.
2. Identification de la dernière ligne :
ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
trouve la dernière ligne contenant des données dans la colonne A.
3. Définition de la plage dynamique :
- La plage est définie dynamiquement de
A2
jusqu’à la dernière ligne.
4. Suppression de la plage nommée existante :
- Si une plage avec le même nom existe, elle est supprimée pour éviter la duplication.
5. Création d’une nouvelle plage nommée :
ThisWorkbook.Names.Add
attribue un nom à la plage définie.
6. Affichage de la confirmation :
- Une boîte de message informe l’utilisateur que la plage a été créée avec succès.
Étape 5 : Utiliser la plage dynamique
Une fois la plage dynamique "TeamMembers"
créée, vous pouvez l’utiliser dans des formules ou dans du code VBA :
1. Utilisation dans une formule :
=COUNTIF(TeamMembers, "John Doe")
pour vérifier si « John Doe » existe dans la liste.
2. Utilisation dans VBA :
Sub TestDynamicRange() Dim rng As Range Set rng = ThisWorkbook.Names("TeamMembers").RefersToRange MsgBox "La plage dynamique contient " & rng.Rows.Count & " membres.", vbInformation, "Informations sur la plage" End Sub
Résultat attendu :
- Le macro créera dynamiquement une plage nommée
"TeamMembers"
basée sur les données de la colonne A. - Une boîte de message apparaîtra pour confirmer la création de la plage.
- La plage nommée pourra être utilisée dans des formules et d’autres codes VBA.