Création d’une plage dynamique des compétences en Intelligence Émotionnelle, Excel VBA
Voici une explication détaillée sur la création d’une plage dynamique des compétences en Intelligence Émotionnelle avec VBA Excel.
Objectif :
L’objectif est de créer une plage dynamique qui ajuste automatiquement la plage de données des compétences en Intelligence Émotionnelle (IE) dans une feuille Excel. Par exemple, vous pouvez avoir une liste de compétences en IE telles que la conscience de soi, la régulation de soi, la motivation, l’empathie, et les compétences sociales, et vous souhaitez un code VBA capable d’ajuster cette plage en fonction des ajouts ou suppressions de compétences.
Structure des données :
Imaginons que les données sont dans une feuille nommée « EQSkills » dans la colonne A (à partir de la cellule A2 vers le bas), avec l’en-tête dans la cellule A1 (par exemple, « Compétences en Intelligence Émotionnelle »).
A |
Compétences en Intelligence Émotionnelle |
Conscience de soi |
Régulation de soi |
Motivation |
Empathie |
Compétences sociales |
Cette table sera dynamique et s’ajustera au fur et à mesure que de nouvelles compétences sont ajoutées.
Code VBA pour créer une plage dynamique :
Sub CreerPlageDynamiquePourCompétencesEQ() Dim ws As Worksheet Dim derniereLigne As Long Dim plageDynamique As Range Dim nomPlage As String ' Définir la feuille de calcul où les compétences EQ se trouvent Set ws = ThisWorkbook.Sheets("EQSkills") ' Trouver la dernière ligne utilisée dans la colonne A derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Définir la plage dynamique de A2 à la dernière ligne utilisée Set plageDynamique = ws.Range("A2:A" & derniereLigne) ' Nom de la plage dynamique nomPlage = "PlageDynamiqueEQ" ' Créer la plage nommée dynamique ThisWorkbook.Names.Add Name:=nomPlage, RefersTo:=plageDynamique ' Optionnel : Afficher un message pour confirmer la création de la plage dynamique MsgBox "La plage dynamique '" & nomPlage & "' a été créée avec succès !" End Sub
Explication du code :
1. Définir la feuille de calcul :
Set ws = ThisWorkbook.Sheets("EQSkills")
Cette ligne définit la feuille de calcul où les compétences en Intelligence Émotionnelle se trouvent. Vous pouvez modifier le nom de la feuille pour l’adapter à votre propre fichier Excel.
2. Trouver la dernière ligne utilisée dans la colonne A :
derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Cette ligne détermine la dernière ligne dans la colonne A qui contient des données. L’utilisation de .End(xlUp) permet de simuler la pression de Ctrl + Flèche Haut dans Excel, ce qui permet de remonter jusqu’à la première cellule contenant des données. Ainsi, la plage sera dynamique et changera en fonction du nombre de lignes de données.
3. Définir la plage dynamique :
Set plageDynamique = ws.Range("A2:A" & derniereLigne)
Cela définit la plage dynamique, allant de A2 (où commence votre première donnée) jusqu’à la dernière ligne déterminée précédemment. La plage s’adapte automatiquement selon les données présentes dans la colonne.
4. Nommer la plage :
nomPlage = "PlageDynamiqueEQ"
Cette ligne définit le nom de la plage dynamique (ici, « PlageDynamiqueEQ »). Vous pouvez choisir n’importe quel nom.
5. Créer la plage nommée dynamique :
ThisWorkbook.Names.Add Name:=nomPlage, RefersTo:=plageDynamique
Cette ligne crée la plage nommée dans le classeur. Le paramètre RefersTo spécifie la plage dynamique que nous avons définie.
6. Message optionnel :
MsgBox "La plage dynamique '" & nomPlage & "' a été créée avec succès !"
Après avoir créé la plage, un message de confirmation s’affiche pour vous informer que la plage dynamique a bien été créée.
Comment cela fonctionne :
- Ajustement dynamique : Si vous ajoutez de nouvelles compétences dans la colonne A (par exemple, à la fin de la liste), le code réajustera automatiquement la plage dynamique pour inclure les nouvelles compétences.
- Mises à jour automatiques : Chaque fois que les données dans la colonne A changent (lignes ajoutées ou supprimées), la plage nommée « PlageDynamiqueEQ » s’ajuste en conséquence.
Utilisation de la plage dynamique :
Une fois la plage dynamique créée, vous pouvez l’utiliser dans des formules ou d’autres codes VBA.
1. Dans une formule Excel : Par exemple, pour compter le nombre de compétences dans la plage dynamique : =NB.SI(PlageDynamiqueEQ)
2. Dans VBA : Vous pouvez aussi y faire référence dans d’autres parties de votre code VBA :
MsgBox "Le nombre de compétences EQ est : " & Application.WorksheetFunction.CountA(Range("PlageDynamiqueEQ"))
Conclusion :
En créant cette plage dynamique pour les compétences en Intelligence Émotionnelle, vous vous assurez que votre plage de données est flexible et s’ajuste automatiquement à l’ajout ou à la suppression de lignes. Cela rend la gestion des données beaucoup plus simple et efficace, surtout si la liste des compétences est amenée à évoluer régulièrement.