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.

ArrowMain

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.

ArrowOutput

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.

ArrowSecondOutput

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]