Créez des compétences d’initiative de plage dynamique, Excel VBA

Créez des compétences d’initiative de plage dynamique, Excel VBA

Créer une plage dynamique dans Excel en utilisant VBA est une méthode puissante pour ajuster automatiquement la taille d’une plage de données en fonction des données présentes dans votre feuille de calcul. Cette technique est particulièrement utile lorsque vous travaillez avec des ensembles de données qui peuvent changer de taille (par exemple, l’ajout ou la suppression de lignes), et que vous souhaitez que votre plage de données se mette à jour dynamiquement. 

Objectif : Créer une plage dynamique pour les « Compétences en initiative » avec VBA 

Dans cet exemple, supposons que nous ayons un tableau de données avec des colonnes représentant différentes compétences en initiative et des lignes représentant diverses entrées. Nous allons créer une plage dynamique qui s’ajuste automatiquement en fonction du nombre de lignes de données présentes. 

Étape 1 : Préparer votre feuille de calcul 

  1. Disposition des données
  • Supposons que vos données soient dans Feuille1, avec les données commençant de la cellule A1 à B1 pour les en-têtes. 
  • La colonne A contient les noms des compétences et la colonne B contient des valeurs ou des attributs associés à ces compétences. 

Exemple de tableau : 

Compétence  Valeur 
Leadership  85 
Créativité  90 
Travail en équipe  75 
Innovation  88 

Vous souhaitez créer une plage dynamique qui inclut toutes les données sous les colonnes « Compétence » et « Valeur ». 

Étape 2 : Explication du code VBA 

Voici un code VBA détaillé pour créer une plage dynamique en fonction des données : 

Sub CreerPlageDynamique() 
    Dim ws As Worksheet 
    Dim derniereLigne As Long 
    Dim plageDynamique As Range 
    Dim nomPlage As String 
    ' Définir la feuille de calcul où se trouvent les données 
    Set ws = ThisWorkbook.Sheets("Feuille1") 
    ' Trouver la dernière ligne avec des données dans la colonne A (Compétence) 
    derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 
    ' Définir la plage dynamique (de la colonne A à la dernière ligne de la colonne B) 
    Set plageDynamique = ws.Range("A1:B" & derniereLigne) 
    ' Créer un nom pour la plage afin de la référencer facilement plus tard 
    nomPlage = "CompetencesInitiatives" 
    ws.Names.Add Name:=nomPlage, RefersTo:=plageDynamique  
    ' Optionnel : Afficher un message de confirmation 
    MsgBox "La plage dynamique 'CompetencesInitiatives' a été créée pour les lignes 1 à " & derniereLigne 
End Sub

Explication du code : 

1. Définir la feuille de calcul (ws)
La première étape consiste à définir la feuille de calcul où se trouvent vos données. Dans cet exemple, il s’agit de Feuille1. 
Set ws = ThisWorkbook.Sheets("Feuille1") attribue la feuille à la variable ws. 

2. Trouver la dernière ligne
derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row trouve la dernière ligne avec des données dans la colonne A. Cette méthode utilise .End(xlUp), qui simule l’appui sur la touche « Ctrl + Flèche vers le haut » pour se déplacer jusqu’à la dernière cellule remplie de bas en haut. C’est crucial pour les plages dynamiques, car vous voulez que la plage s’ajuste en fonction des données présentes dans la feuille. 

3. Définir la plage
La plage est définie comme allant de A1 à B et à la derniereLigne. 
Set plageDynamique = ws.Range("A1:B" & derniereLigne) crée une plage dynamique qui inclut toutes les lignes avec des données dans les deux colonnes. 

4. Créer un nom pour la plage
ws.Names.Add Name:=nomPlage, RefersTo:=plageDynamique crée un nom pour la plage appelée « CompetencesInitiatives » afin de pouvoir la référencer facilement plus tard dans des formules ou d’autres parties de votre code VBA. 

5. Message de confirmation optionnel
MsgBox affiche une boîte de message pour confirmer que la plage a bien été créée, avec le numéro de la dernière ligne. 

Étape 3 : Exécution du code 

  • Pour exécuter ce code, appuyez sur Alt + F11 pour ouvrir l’éditeur VBA dans Excel, insérez un nouveau module, puis collez le code. 
  • Ensuite, appuyez sur F5 pour exécuter la macro. Après l’exécution, une nouvelle plage dynamique nommée « CompetencesInitiatives » sera créée. 

Étape 4 : Utilisation de la plage dynamique 

Vous pouvez maintenant utiliser la plage dynamique « CompetencesInitiatives » dans vos formules ou graphiques. Par exemple : 

  • =SOMME(CompetencesInitiatives) additionnera toutes les valeurs dans la plage dynamique, en ajustant automatiquement à mesure que des lignes sont ajoutées ou supprimées. 
  • Dans les graphiques, vous pouvez référencer la plage « CompetencesInitiatives » pour vous assurer que le graphique se met à jour à mesure que de nouvelles données sont ajoutées. 

Points clés : 

  • Ajustement dynamique : Le code ajuste automatiquement la taille de la plage en fonction des données présentes dans la feuille (par exemple, l’ajout ou la suppression de lignes). 
  • Plages nommées : Nommer la plage permet de la référencer facilement, notamment dans les formules ou d’autres macros. 
  • Flexibilité : Cette méthode peut être adaptée pour inclure plusieurs colonnes ou des ensembles de données plus complexes. 

Cette méthode est particulièrement utile pour des tâches comme la création de rapports dynamiques, de tableaux de bord ou d’outils d’analyse de données, où la plage de données peut changer au fil du temps, et où vous souhaitez garder tout synchronisé sans intervention manuelle. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x