Créer une plage dynamique pour la formation d’équipes, Excel VBA

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 InsertionModule.
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 FichierEnregistrer 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.
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x