CREATION d'une FONCTION PERSONNALISEE

Bonjour à tous,

Je m'exerce à créer des fonctions personnalisées, mais le code qui suit me paraît un peu "Lourd" mais il fonctionne.

Il s'agit d'une fonction qui permet d'effectuer un total de plusieurs plages de cellules définies ou que l'on peut modifier.

Function TOTAL_GENERAL(PLAGE1, PLAGE2, PLAGE3, PLAGE4) As Double
Dim TOTAL1 As Double
Dim TOTAL2 As Double
Dim TOTAL3 As Double
Dim TOTAL4 As Double

TOTAL1 = Application.WorksheetFunction.Sum(PLAGE1)
TOTAL2 = Application.WorksheetFunction.Sum(PLAGE2)
TOTAL3 = Application.WorksheetFunction.Sum(PLAGE3)
TOTAL4 = Application.WorksheetFunction.Sum(PLAGE4)

'Indispensable pour forcer le recalcul quand on modifie le contenu de la feuille
Application.Volatile
TOTAL_GENERAL = TOTAL1 + TOTAL2 + TOTAL3 + TOTAL4
End Function

Y-a-t-il moyen de simplifier cette codification, j'ai bien essayé par exemple pour le TOTAL_GENERAL le code suivant mais ça coince....

For i = 1 To 4
TOTAL_GENERAL = Sum(TOTAL, i)
Next i

Merci pour votre aide précieuse.

bonjour,

Function TOTAL_GENERAL(PLAGE1, PLAGE2, PLAGE3, PLAGE4) As Double
Application.Volatile
TOTAL_GENERAL = Application.WorksheetFunction.Sum(PLAGE1,PLAGE2,PLAGE3,PLAGE4)
End Function

A+

Bonjour Galopin1,

Super ! Merci et d'une simplicité redoutable.

Petite question subsidiaire :

Y-a-t-il un moyen de définir par défaut, à l'ouverture de la fenêtre de la fonction, les plages à "Zéro" ?

img1

re,

Function TOTAL_GENERAL(Optional Plage1 = 0, _
                        Optional Plage2 = 0, _
                        Optional Plage3 = 0, _
                        Optional Plage4 = 0, _
                        Optional Plage5 = 0, _
                        Optional Plage6 = 0, _
                        Optional Plage7 = 0) As Double
Application.Volatile
TOTAL_GENERAL = Application.WorksheetFunction.Sum(Plage1, Plage2, Plage3, Plage4, Plage5, Plage6, Plage7)
End Function

A+

re,

Respect ! Merci beaucoup.

Rechercher des sujets similaires à "creation fonction personnalisee"