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 :
wsest utilisée pour stocker la référence à la feuille de calcul nommée « Teams ».lastRowdétermine la dernière ligne non vide de la colonne A.rngest utilisée pour contenir la plage dynamique.dynamicRangeNamecontient le nom de la plage.
2. Identification de la dernière ligne :
ws.Cells(ws.Rows.Count, 1).End(xlUp).Rowtrouve 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
A2jusqu’à 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.Addattribue 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.