Créer une plage dynamique pour un suivi des « Compétences en Pensée Stratégique », Excel VBA
Voici une explication détaillée et un exemple de code VBA pour créer une plage dynamique dans Excel. Ce code est particulièrement utile pour gérer des données qui évoluent au fil du temps, comme dans un suivi des « Compétences en Pensée Stratégique ». La plage dynamique ajustera automatiquement sa taille en fonction des données disponibles.
Explication étape par étape :
1. Concept de la plage dynamique :
- Une plage dynamique dans Excel ajuste automatiquement sa taille lorsque des données sont ajoutées ou supprimées. Cela est particulièrement utile pour la pensée stratégique car cela permet de garantir que les données sont toujours actualisées sans intervention manuelle.
- Par exemple, si vous suivez des compétences stratégiques dans une liste (par exemple des colonnes comme « Nom de la compétence », « Date d’évaluation », « Score »), votre plage doit ajuster automatiquement sa taille à mesure que de nouvelles données sont ajoutées.
2. Cas d’utilisation :
- Imaginons que vous ayez une liste de compétences (par exemple, des colonnes comme « Nom de la compétence », « Date de l’évaluation », « Score ») dans une feuille Excel. Cette liste peut s’agrandir ou se réduire au fil du temps.
- Vous pouvez définir une plage dynamique qui ajustera automatiquement son contenu pour inclure toutes les données, peu importe combien de lignes ont été ajoutées ou supprimées.
3. Code VBA pour créer une plage dynamique : Le code suivant crée une plage dynamique pour la « Liste des Compétences », en supposant que les données commencent en colonne A à partir de A2 :
Sub CreerPlageDynamique() Dim ws As Worksheet Dim derniereLigne As Long Dim nomPlage As String Dim plageDynamique As Range ' Définir la feuille de travail sur laquelle vous souhaitez travailler Set ws = ThisWorkbook.Sheets("Feuille1") ' Remplacez "Feuille1" par le nom de votre feuille ' Trouver la dernière ligne de la colonne A (en supposant que les données commencent à A2 et qu'il y a un en-tête en A1) derniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Vérifier si la dernière ligne est supérieure à 1 (pour s'assurer qu'il y a des données sous l'en-tête) If derniereLigne > 1 Then ' Définir la plage dynamique (de A2 à la dernière ligne de la colonne A) Set plageDynamique = ws.Range("A2:A" & derniereLigne) ' Créer ou mettre à jour le nom de la plage nomPlage = "PlageCompetencesStrategiques" ' Nom de votre plage dynamique On Error Resume Next ThisWorkbook.Names(nomPlage).Delete ' Supprime l'ancienne plage nommée si elle existe On Error GoTo 0 ThisWorkbook.Names.Add Name:=nomPlage, RefersTo:=plageDynamique ' Informer l'utilisateur que la plage dynamique a été créée MsgBox "Plage dynamique '" & nomPlage & "' créée de A2 à A" & derniereLigne, vbInformation Else MsgBox "Aucune donnée disponible dans la colonne A !", vbExclamation End If End Sub
Explication du code :
- Objet Worksheet (
ws
) : - Le code commence par définir un objet
ws
qui fait référence à la feuille de calcul sur laquelle vous travaillez (dans cet exemple, « Feuille1 »). Vous pouvez remplacer « Feuille1 » par le nom de votre feuille de travail. - Trouver la dernière ligne (
derniereLigne
) : - Le code utilise
Cells(ws.Rows.Count, 1).End(xlUp).Row
pour trouver la dernière ligne de la colonne A qui contient des données. Cela garantit que la plage dynamique couvre uniquement les données réelles. - Création de la plage dynamique (
plageDynamique
) : - La plage dynamique est définie par la commande
Range("A2:A" & derniereLigne)
, qui s’ajustera automatiquement en fonction du nombre de lignes de données présentes dans la colonne A. - Nommer la plage (
PlageCompetencesStrategiques
) : - La plage dynamique est nommée « PlageCompetencesStrategiques », ce qui vous permet de l’utiliser facilement dans d’autres formules ou dans du code VBA. L’ancienne plage nommée est supprimée si elle existe déjà grâce à la gestion d’erreurs
On Error Resume Next
etOn Error GoTo 0
. - Gestion des erreurs et retour à l’utilisateur :
- Le code comprend une gestion des erreurs simple pour éviter que le code plante si la plage dynamique existe déjà.
- Une boîte de message informe l’utilisateur que la plage dynamique a été créée ou si aucune donnée n’est disponible.
Utilisation pratique de la plage dynamique :
- Formules : Une fois la plage dynamique créée, vous pouvez l’utiliser dans des formules. Par exemple :
=SOMME(PlageCompetencesStrategiques)
Cette formule s’ajustera automatiquement chaque fois que la plage sera modifiée (ajout ou suppression de données).
- Tableaux croisés dynamiques/Graphiques : Vous pouvez utiliser la plage dynamique comme source de données pour des tableaux croisés dynamiques ou des graphiques. À chaque ajout de nouvelles données, vos tableaux croisés et graphiques seront mis à jour automatiquement sans avoir besoin de modifier les plages manuellement.
- Automatisation : Cette plage dynamique peut faire partie d’un processus automatisé dans votre classeur. Par exemple, si vous collectez des évaluations de compétences stratégiques au fil du temps, la plage sera ajustée chaque fois que de nouvelles données sont entrées.
Conclusion :
Créer une plage dynamique dans Excel avec VBA est une méthode puissante pour gérer des données sans se soucier de mettre à jour manuellement les références. L’exemple fourni est une application pour suivre les compétences stratégiques, mais cette approche peut être adaptée à toute autre plage de données dynamique.
Si vous avez besoin de modifications supplémentaires, comme l’utilisation d’une plage dynamique pour plusieurs colonnes ou l’ajout de critères plus complexes, les principes restent les mêmes et vous pouvez ajuster le code selon vos besoins.