Création de calculs avec des plages dynamiques, Excel VBA

Création de calculs avec des plages dynamiques, Excel VBA

Voici un guide détaillé en français sur la création de calculs avec des plages dynamiques à l’aide de VBA dans Excel. 

Vue d’ensemble 

Dans Excel, une plage dynamique est une plage de cellules qui peut s’étendre ou se contracter automatiquement en fonction des données qu’elle contient. Cela est particulièrement utile lorsque vous travaillez avec un ensemble de données fluctuant et que vous souhaitez effectuer des calculs sur une plage dont la taille change. 

Avec VBA, vous pouvez définir des plages dynamiques en trouvant la dernière ligne ou la dernière colonne contenant des données, puis en utilisant cette plage pour effectuer des calculs comme SUM, AVERAGE, etc. 

Étapes : 

  1. Identifier la dernière ligne ou colonne : Nous allons d’abord déterminer la dernière ligne ou colonne contenant des données pour définir dynamiquement la plage. 
  2. Créer une plage dynamique : Utilisez VBA pour faire référence à cette plage. 
  3. Effectuer des calculs sur la plage dynamique : Utilisez la plage pour effectuer des calculs tels que la somme, la moyenne, le comptage, etc. 

Exemple de code VBA 

Sub CalculPlageDynamique() 
    Dim ws As Worksheet 
    Dim derniereLigne As Long 
    Dim derniereColonne As Long 
    Dim plageDynamique As Range 
    Dim resultatSomme As Double 
    Dim resultatMoyenne As Double 
    Dim resultatCompte As Long 
    ' Référencer la feuille active 
    Set ws = ThisWorkbook.Sheets("Feuille1") 
    ' Trouver la dernière ligne avec des données dans la colonne A (vous pouvez changer cette colonne si nécessaire) 
    derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 
    ' Touver la dernière colonne avec des données dans la ligne 1 (vous pouvez changer cette ligne si nécessaire) 
    derniereColonne = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column 
    ' Définir une plage dynamique en utilisant la dernière ligne et la dernière colonne 
    Set plageDynamique = ws.Range(ws.Cells(1, 1), ws.Cells(derniereLigne, derniereColonne)) 
    ' Effectuer des calculs sur la plage dynamique 
    resultatSomme = Application.WorksheetFunction.Sum(plageDynamique) 
    resultatMoyenne = Application.WorksheetFunction.Average(plageDynamique) 
    resultatCompte = Application.WorksheetFunction.Count(plageDynamique)  
    ' Afficher les résultats 
    MsgBox "Somme de la plage dynamique : " & resultatSomme 
    MsgBox "Moyenne de la plage dynamique : " & resultatMoyenne 
    MsgBox "Nombre d'éléments dans la plage dynamique : " & resultatCompte 
End Sub

Explication détaillée : 

1. Référence à la feuille de travail

  • Set ws = ThisWorkbook.Sheets(« Feuille1 »): Cette ligne définit la feuille de calcul dans laquelle les données se trouvent. Vous pouvez remplacer « Feuille1 » par le nom de votre propre feuille. 

2. Trouver la dernière ligne et la dernière colonne

  • derniereLigne = ws.Cells(ws.Rows.Count, « A »).End(xlUp).Row: Cette ligne trouve la dernière ligne utilisée dans la colonne A. Vous pouvez changer « A » par toute autre colonne contenant des données. 
  • derniereColonne = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column: Cette ligne trouve la dernière colonne utilisée dans la ligne 1. Vous pouvez changer 1 par une autre ligne, selon la structure de vos données. 

3. Créer la plage dynamique

  • Set plageDynamique = ws.Range(ws.Cells(1, 1), ws.Cells(derniereLigne, derniereColonne)): Cette ligne définit une plage dynamique allant de la cellule A1 à la cellule correspondant à la dernière ligne et la dernière colonne utilisées. Elle s’ajuste automatiquement en fonction des données. 

4. Effectuer les calculs

  • resultatSomme = Application.WorksheetFunction.Sum(plageDynamique): Cette ligne calcule la somme des valeurs dans la plage dynamique. 
  • resultatMoyenne = Application.WorksheetFunction.Average(plageDynamique): Cette ligne calcule la moyenne des valeurs dans la plage dynamique. 
  • resultatCompte = Application.WorksheetFunction.Count(plageDynamique): Cette ligne compte le nombre de cellules non vides dans la plage dynamique. 

5. Afficher les résultats

  • MsgBox: Affiche une boîte de message avec les résultats des calculs. 

Personnalisation : 

  • Autres calculs : Vous pouvez facilement remplacer les fonctions Sum, Average et Count par d’autres fonctions comme Min, Max ou Median selon vos besoins. 
  • Plages multiples : Vous pouvez définir plusieurs plages dynamiques pour d’autres colonnes ou lignes si nécessaire, simplement en modifiant la façon dont vous calculez derniereLigne ou derniereColonne. 

Cas d’utilisation : 

Supposons que vous travaillez avec des données de ventes où chaque mois vous ajoutez plus de lignes ou de colonnes pour de nouvelles données. Plutôt que de mettre à jour manuellement les plages pour les calculs de totaux ou de moyennes, ce script VBA s’adapte dynamiquement à la taille des données, ce qui le rend plus efficace et flexible pour les mises à jour fréquentes. 

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