Créer une exécution de plage dynamique, Excel VBA

Créer une exécution de plage dynamique, Excel VBA

Voici une explication détaillée sur la création d’une plage dynamique (Dynamic Range) en utilisant VBA dans Excel, avec un exemple de code. 

Qu’est-ce qu’une Plage Dynamique ? 

Une plage dynamique fait référence à une plage de cellules dans une feuille de calcul Excel qui ajuste automatiquement sa taille lorsque des données sont ajoutées ou supprimées. Cela est particulièrement utile pour la création de graphiques, de tableaux croisés dynamiques, et de listes de validation de données, car elle peut inclure automatiquement de nouvelles données sans nécessiter de mise à jour manuelle de la plage. 

Cas d’Utilisation d’une Plage Dynamique 

Vous pouvez vouloir définir une plage dynamique qui s’ajuste au fur et à mesure que les données dans une colonne ou une ligne se développent. Par exemple, une plage dynamique peut ajuster automatiquement le nombre de lignes dans un jeu de données sans avoir besoin de mettre à jour la référence de la plage chaque fois que les données changent. 

Étapes pour Créer une Plage Dynamique avec VBA 

  1. Utilisation de l’objet Range : Vous pouvez définir une plage dynamiquement en utilisant l’objet Range et la méthode End pour trouver la dernière ligne ou colonne utilisée. 
  2. Utilisation de Application.WorksheetFunction.CountA : Cette fonction permet de compter le nombre de cellules non vides dans une plage. 
  3. Utilisation de Offset : La méthode Offset peut aider à ajuster la plage en fonction d’un point de départ. 

Exemple de Création d’une Plage Dynamique avec VBA 

Sub CreerPlageDynamique() 
    Dim ws As Worksheet 
    Dim derniereLigne As Long 
    Dim derniereColonne As Long 
    Dim plageDynamique As Range 
    ' Définir la feuille de calcul (utiliser la feuille active ou un nom de feuille spécifique) 
    Set ws = ThisWorkbook.Sheets("Feuille1") 
    ' Trouver la dernière ligne et la dernière colonne utilisées dans la feuille de calcul 
    derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row  ' Trouver la dernière ligne utilisée dans la colonne A 
    derniereColonne = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' Trouver la dernière colonne utilisée dans la ligne 1 
    ' Définir la plage dynamique de A1 à la dernière ligne et colonne 
    Set plageDynamique = ws.Range(ws.Cells(1, 1), ws.Cells(derniereLigne, derniereColonne)) 
    ' Optionnel : Mettre en surbrillance la plage dynamique pour vérifier 
    plageDynamique.Select 
    ' Afficher l'adresse de la plage dynamique dans la fenêtre immédiate (Ctrl+G dans l'éditeur VBA) 
    Debug.Print "Adresse de la plage dynamique : " & plageDynamique.Address 
End Sub

Explication Détailée : 

1. Définir la Feuille de Calcul (ws)

  • La première étape consiste à spécifier la feuille de calcul sur laquelle vous souhaitez travailler. Dans cet exemple, le code fait référence à « Feuille1 ». Vous pouvez remplacer « Feuille1 » par le nom de n’importe quelle feuille de votre choix. 

2. Trouver la Dernière Ligne et la Dernière Colonne

  • derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row : Cette ligne de code permet de trouver la dernière ligne non vide de la colonne A. Elle commence à partir du bas de la colonne A et se déplace vers le haut (xlUp) jusqu’à ce qu’elle trouve la première cellule non vide. 
  • derniereColonne = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column : De manière similaire, cette ligne trouve la dernière colonne non vide de la ligne 1. Elle commence à partir de la colonne la plus à droite et se déplace vers la gauche (xlToLeft) pour trouver la dernière colonne utilisée. 

3. Créer la Plage Dynamique

  •  Set plageDynamique = ws.Range(ws.Cells(1, 1), ws.Cells(derniereLigne, derniereColonne))  : Cette ligne crée une plage dynamique de la cellule A1 jusqu’à la cellule déterminée par derniereLigne et derniereColonne. 

4. Sélectionner la Plage (Optionnel)

  • plageDynamique.Select : Cette ligne est optionnelle et permet de sélectionner visuellement la plage sur la feuille de calcul. Vous pouvez la commenter si vous ne souhaitez pas que la plage soit sélectionnée. 

5. Afficher l’Adresse de la Plage Dynamique

  • Debug.Print "Adresse de la plage dynamique : " & plageDynamique.Address : Cette ligne affiche l’adresse de la plage dynamique dans la fenêtre immédiate de l’éditeur VBA. Cela est utile pour le débogage et pour confirmer que la plage dynamique a bien été créée. 

Avantages des Plages Dynamiques 

  • Ajustement Automatique : À mesure que vous ajoutez ou supprimez des données, la plage dynamique s’ajuste automatiquement pour inclure les nouvelles données. 
  • Efficace pour les Grandes Données : Plutôt que de redéfinir manuellement la plage, la plage dynamique s’ajuste automatiquement, ce qui permet de gagner du temps et de l’effort, surtout pour les grands ensembles de données. 
  • Polyvalente : Cela peut être utilisé pour définir des plages dynamiques pour des graphiques, des tableaux croisés dynamiques, ou toute autre utilisation dans Excel où une plage flexible est nécessaire. 

Exemples de Cas d’Utilisation pour des Plages Dynamiques : 

  1. Graphiques : Utilisez des plages dynamiques dans les graphiques pour que le graphique inclut automatiquement les nouvelles données lorsque la feuille est mise à jour. 
  2. Tableaux Croisés Dynamiques : Vous pouvez définir une plage dynamique comme source de données pour un tableau croisé dynamique afin qu’elle soit automatiquement mise à jour lorsque vous ajoutez des données. 
  3. Validation des Données : Définissez une liste dynamique pour la validation des données afin que les utilisateurs ne puissent sélectionner que parmi les données disponibles dans une plage dynamique. 
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x