Générer totale pour la zone dynamique à l’aide VBA dans Microsoft Excel
Dans cet article, nous allons créer une fonction personnalisée pour générer le total de la plage dynamique.
Les données brutes de cet article sont constituées de nombres aléatoires.
Dans cet exemple, nous voulons calculer la somme des valeurs dans toutes les cellules de chaque colonne. Chaque colonne a un nombre différent de valeurs.
Nous avons créé une fonction personnalisée «DynaSum» pour calculer la somme des valeurs dans toutes les cellules.
La fonction personnalisée «DynaSum» calcule la somme des valeurs de toutes les cellules consécutives. Cette fonction additionnera toutes les valeurs jusqu’à ce qu’une cellule vide soit rencontrée.
Si nous ajoutons une valeur supplémentaire au-dessus des valeurs définies, ces valeurs seront ajoutées automatiquement.
Explication du code
Set Rng = Application.Caller Le code ci-dessus est utilisé pour affecter la cellule contenant la fonction personnalisée comme objet Range.
Veuillez suivre ci-dessous pour le code
Option Explicit Function DynaSum(Optional Rng As Range) 'Declaring variables Dim Total As Double Dim LngRow As Long Dim LngCol As Integer 'Refresh function when value in worksheet is changed Application.Volatile 'Assigning range if Range is not specified in the function If Rng Is Nothing Then Set Rng = Application.Caller End If 'Getting the column and row number LngCol = Rng.Column LngRow = Rng.Row - 1 'Looping through all the cells in the column until blank cell is encountered Do Until IsEmpty(Cells(LngRow, LngCol)) Total = Total + Cells(LngRow, LngCol) LngRow = LngRow - 1 If LngRow = 1 Then Exit Do Loop 'Getting output DynaSum = Total End Function
Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.
Nous aimerions avoir de vos nouvelles, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]