Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Somme dans VBA

3 réponses
Avatar
Frédéric
Bonjour,
J'écris pas mal de macros, mais pourtant, j'arrive encore à bloquer sur des
fonctions de base!
Existe t'il une formule pour calculer une somme dans VBA, du style :
toto= somme(range(cells(1,1),cells(10,1))) ?

Je veux uniquement le résultat dans une variable VBA, et ne souhaite surtout
pas passer par une cellule d'une feuille excel (c'est pour cela qu'une
solution de type Cellule.FormulaLocal = "=somme..." ne me convient pas).

Après, il y a bien sur la possibilité de faire une boucle sur l'ensemble des
cellules, mais ca risque de ne pas être très performant en cas de grande
plage.

Merci beaucoup à celui ou celle qui pourrait avoir un avis éclairé sur le
sujet!
Cordialement

3 réponses

Avatar
Daniel
Bonjour.
Il y a peut-êtree plus rusé, mais
toto = WorksheetFunction.Sum(Range(Cells(1, 1), Cells(10, 1)))
le fait.
Cordialement.
Daniel
"Frédéric" <Frédé a écrit dans le message de
news:
Bonjour,
J'écris pas mal de macros, mais pourtant, j'arrive encore à bloquer sur
des
fonctions de base!
Existe t'il une formule pour calculer une somme dans VBA, du style :
toto= somme(range(cells(1,1),cells(10,1))) ?

Je veux uniquement le résultat dans une variable VBA, et ne souhaite
surtout
pas passer par une cellule d'une feuille excel (c'est pour cela qu'une
solution de type Cellule.FormulaLocal = "=somme..." ne me convient pas).

Après, il y a bien sur la possibilité de faire une boucle sur l'ensemble
des
cellules, mais ca risque de ne pas être très performant en cas de grande
plage.

Merci beaucoup à celui ou celle qui pourrait avoir un avis éclairé sur le
sujet!
Cordialement



Avatar
Frédéric
Simple... mais efficace!
"WorksheetFunction" manquait à mon répertoire!
Merci beaucoup pour votre aide.
A+

"Daniel" wrote:

Bonjour.
Il y a peut-êtree plus rusé, mais
toto = WorksheetFunction.Sum(Range(Cells(1, 1), Cells(10, 1)))
le fait.
Cordialement.
Daniel
"Frédéric" <Frédé a écrit dans le message de
news:
Bonjour,
J'écris pas mal de macros, mais pourtant, j'arrive encore à bloquer sur
des
fonctions de base!
Existe t'il une formule pour calculer une somme dans VBA, du style :
toto= somme(range(cells(1,1),cells(10,1))) ?

Je veux uniquement le résultat dans une variable VBA, et ne souhaite
surtout
pas passer par une cellule d'une feuille excel (c'est pour cela qu'une
solution de type Cellule.FormulaLocal = "=somme..." ne me convient pas).

Après, il y a bien sur la possibilité de faire une boucle sur l'ensemble
des
cellules, mais ca risque de ne pas être très performant en cas de grande
plage.

Merci beaucoup à celui ou celle qui pourrait avoir un avis éclairé sur le
sujet!
Cordialement








Avatar
michdenis
Bonjour Frédéric,

2 autres façons de faire :


Dim MyVar As Double
MyVar = [sum(FEuil1!A1:A10)]

'ou

Dim Adr As String
With Worksheets("Feuil1")
Adr = .Name & "!" & Range(Cells(1, 1), Cells(10, 1)).Address
MyVar = Evaluate("Sum(" & Adr & ")")
End With



Salutations!



"Frédéric" <Frédé a écrit dans le message de news:

Bonjour,
J'écris pas mal de macros, mais pourtant, j'arrive encore à bloquer sur des
fonctions de base!
Existe t'il une formule pour calculer une somme dans VBA, du style :
toto= somme(range(cells(1,1),cells(10,1))) ?

Je veux uniquement le résultat dans une variable VBA, et ne souhaite surtout
pas passer par une cellule d'une feuille excel (c'est pour cela qu'une
solution de type Cellule.FormulaLocal = "=somme..." ne me convient pas).

Après, il y a bien sur la possibilité de faire une boucle sur l'ensemble des
cellules, mais ca risque de ne pas être très performant en cas de grande
plage.

Merci beaucoup à celui ou celle qui pourrait avoir un avis éclairé sur le
sujet!
Cordialement