Créer une plage dynamique de manière simple et automatique, Excel VBA

Créer une plage dynamique de manière simple et automatique, Excel VBA
Voici une explication détaillée et un code VBA pour créer une plage dynamique dans Excel. L’objectif est de rendre la plage dynamique de manière simple et automatique en fonction des données présentes.
Explication
Dans Excel, il peut arriver que vous ayez une liste de données (par exemple, une colonne de valeurs ou un tableau), et que vous souhaitiez créer une plage dynamique qui s’ajuste automatiquement à mesure que les données augmentent ou diminuent. VBA permet de créer une plage dynamique qui se met à jour automatiquement au fur et à mesure des changements de données, sans avoir à ajuster manuellement la plage dans vos formules ou graphiques.
Pour ce faire, nous pouvons utiliser VBA afin de créer une plage dynamique en utilisant les plages nommées. Excel peut automatiquement ajuster la plage en fonction des données disponibles dans une colonne ou une ligne. Nous pouvons utiliser des fonctions VBA comme Range, Cells, et End pour définir cette plage dynamique.
Voici les étapes :
1. Plage dynamique pour une colonne : Vous pouvez définir une plage dynamique pour une colonne dont le nombre de lignes est inconnu, et elle s’ajustera automatiquement en fonction des données.
2. Plage dynamique pour un tableau : Si vous travaillez avec un tableau, vous pouvez définir une plage dynamique qui fait référence aux données du tableau.
Code pour créer une plage dynamique avec VBA
Cet exemple suppose que vous avez des données dans la colonne A, et que vous souhaitez créer une plage dynamique qui s’ajuste automatiquement à mesure que de nouvelles données sont ajoutées ou supprimées.

Sub CreerPlageDynamique()
    Dim ws As Worksheet
    Dim plageDynamique As Range
    Dim derniereLigne As Long
    ' Définir la feuille de travail contenant les données
    Set ws = ThisWorkbook.Sheets("Feuille1")
    ' Trouver la dernière ligne utilisée dans la colonne A
    derniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    ' Créer la plage dynamique de A1 à la dernière ligne de la colonne A
    Set plageDynamique = ws.Range("A1:A" & derniereLigne)
    ' Définir la plage dynamique comme une plage nommée
    ThisWorkbook.Names.Add Name:="PlageDynamique", RefersTo:=plageDynamique
    ' Optionnel : Afficher un message pour informer l'utilisateur que la plage dynamique a été créée
    MsgBox "La plage dynamique 'PlageDynamique' a été créée de A1 à A" & derniereLigne, vbInformation
End Sub

Détail du Code
1. Définir la feuille de travail :
Set ws = ThisWorkbook.Sheets("Feuille1")
Cette ligne spécifie la feuille sur laquelle vous travaillez. Vous pouvez remplacer "Feuille1" par le nom de votre propre feuille.
2. Trouver la dernière ligne avec des données :
derniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Cette ligne trouve la dernière ligne utilisée dans la colonne A. Cela se fait en partant du bas de la feuille (ws.Rows.Count) et en remontant jusqu’à la première cellule non vide (xlUp). Cela permet de définir une plage dynamique qui s’ajuste automatiquement à la taille des données.
3. Créer la plage dynamique :
Set plageDynamique = ws.Range("A1:A" & derniereLigne)
Cela définit la plage dynamique de A1 à la dernière ligne trouvée dans la colonne A.
4. Créer une plage nommée :
ThisWorkbook.Names.Add Name:="PlageDynamique", RefersTo:=plageDynamique
Cette ligne crée une plage nommée appelée PlageDynamique qui fait référence à la plage dynamique que nous avons définie. Vous pouvez ensuite utiliser ce nom dans vos formules, graphiques ou autres morceaux de code VBA pour faire référence à cette plage dynamique.
5. Message d’information :
MsgBox "La plage dynamique 'PlageDynamique' a été créée de A1 à A" & derniereLigne, vbInformation
Cette ligne affiche une boîte de message pour informer l’utilisateur que la plage dynamique a été créée avec succès.
Utilisation de la Plage Dynamique
Une fois que vous avez exécuté le code, vous pouvez utiliser la plage nommée PlageDynamique comme n’importe quelle autre plage dans Excel. Par exemple, dans une formule :
=SOMME(PlageDynamique)
Cela s’ajustera automatiquement pour additionner les valeurs dans la colonne A, même si des données sont ajoutées ou supprimées.
Notes supplémentaires
1. Plages dynamiques pour plusieurs colonnes : Vous pouvez étendre le concept pour créer des plages dynamiques pour plusieurs colonnes ou même un tableau entier. Par exemple, si vos données sont dans les colonnes A à C, vous pouvez ajuster la plage dynamique pour qu’elle fasse référence à Range("A1:C" & derniereLigne).
2. Plages dynamiques pour des tableaux : Si vous travaillez avec un tableau Excel (ListObject), vous pouvez directement faire référence au tableau comme une plage dynamique. Voici un exemple :

Dim tbl As ListObject
Set tbl = ws.ListObjects("Tableau1")
Set plageDynamique = tbl.DataBodyRange
ThisWorkbook.Names.Add Name:="PlageTableauDynamique", RefersTo:=plageDynamique

3. Considérations de performance : Pour des ensembles de données très volumineux, la création de plages dynamiques et le recalcul des formules peuvent ralentir votre classeur. Il est donc important de prendre en compte la taille des données lorsque vous travaillez avec des plages dynamiques.
Cette méthode est simple, efficace et évolutive pour la plupart des scénarios où vous devez travailler avec des plages dynamiques dans Excel à l’aide de VBA.

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