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

Comment faire la Somme de plusieurs cellules ?

7 réponses
Avatar
Gouap
Bonjour,

Existe-t-il en VBA une façon rapide de faire la somme des valeurs situées
dans différentes cellules pas forcement adjacentes suivantes ? Pour éviter
de faire :
Total = Range("D27").Value + Range("D27").Value + Range("D27").Value

Par Exemple si je veux calculer toutes ces cellules
Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21").Value

Autre question :
En reprenant le même raisonnement je voudrais m'assurer que toutes ces
cellules contiennent bien une valeur numérique.
Peut on faire une action globale qui me retournerait une erreur par exemple
si une de ces cellules est une chaine de caractère ?

@+
Philippe

7 réponses

Avatar
JB
Bonjour,

x =
Application.Sum(Range("B2:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C 51"))

Les valeurs alpha ne sont pas prises en considération.

JB
http://boisgontierjacques.free.fr/

On 16 avr, 15:09, "Gouap" wrote:
Bonjour,

Existe-t-il en VBA une fa on rapide de faire la somme des valeurs situ es
dans diff rentes cellules pas forcement adjacentes suivantes ? Pour viter
de faire :
Total = Range("D27").Value + Range("D27").Value + Range("D27").Value

Par Exemple si je veux calculer toutes ces cellules
Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J2 0:­J21,L20,L21").Value

Autre question :
En reprenant le m me raisonnement je voudrais m'assurer que toutes ces
cellules contiennent bien une valeur num rique.
Peut on faire une action globale qui me retournerait une erreur par exemp le
si une de ces cellules est une chaine de caract re ?

@+
Philippe
Avatar
Daniel.C
Bonjour.
1.
Somme =
Application.Sum(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
2.
If
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
_
<>
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
Then
MsgBox "cellule(s) non numérique(s)"
End If

Cordialement.
Daniel

Bonjour,

Existe-t-il en VBA une façon rapide de faire la somme des valeurs situées
dans différentes cellules pas forcement adjacentes suivantes ? Pour éviter de
faire :
Total = Range("D27").Value + Range("D27").Value + Range("D27").Value

Par Exemple si je veux calculer toutes ces cellules
Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21").Value

Autre question :
En reprenant le même raisonnement je voudrais m'assurer que toutes ces
cellules contiennent bien une valeur numérique.
Peut on faire une action globale qui me retournerait une erreur par exemple
si une de ces cellules est une chaine de caractère ?

@+
Philippe
Avatar
Jacky
Bonjour,

Nommer la plage de cellule (insertion/nom/définir)
ensuite dans une cellule
=SOMME(plage)
'----------------
Il est toujours préférable de contrôler la saisie (données /validation) que de vouloir travailler sur une
saisie erronée
Ou alors en vba

Ce n'est qu'un avis....
--
Salutations
JJ


"Gouap" a écrit dans le message de news:
Bonjour,

Existe-t-il en VBA une façon rapide de faire la somme des valeurs situées dans différentes cellules pas
forcement adjacentes suivantes ? Pour éviter de faire :
Total = Range("D27").Value + Range("D27").Value + Range("D27").Value

Par Exemple si je veux calculer toutes ces cellules
Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21").Value

Autre question :
En reprenant le même raisonnement je voudrais m'assurer que toutes ces cellules contiennent bien une valeur
numérique.
Peut on faire une action globale qui me retournerait une erreur par exemple si une de ces cellules est une
chaine de caractère ?

@+
Philippe

Avatar
Jacky
re..
En vba
'--------------
total = Application.Sum([plage])
MsgBox total
'--------------
--
Salutations
JJ


"Jacky" a écrit dans le message de news:
Bonjour,

Nommer la plage de cellule (insertion/nom/définir)
ensuite dans une cellule
=SOMME(plage)
'----------------
Il est toujours préférable de contrôler la saisie (données /validation) que de vouloir travailler sur une
saisie erronée
Ou alors en vba

Ce n'est qu'un avis....
--
Salutations
JJ


"Gouap" a écrit dans le message de news:
Bonjour,

Existe-t-il en VBA une façon rapide de faire la somme des valeurs situées dans différentes cellules pas
forcement adjacentes suivantes ? Pour éviter de faire :
Total = Range("D27").Value + Range("D27").Value + Range("D27").Value

Par Exemple si je veux calculer toutes ces cellules
Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21").Value

Autre question :
En reprenant le même raisonnement je voudrais m'assurer que toutes ces cellules contiennent bien une valeur
numérique.
Peut on faire une action globale qui me retournerait une erreur par exemple si une de ces cellules est une
chaine de caractère ?

@+
Philippe





Avatar
Gouap
Bonjour Daniel.C,

Ta 1ere proposition pour faire la somme des cellules fonctionne très bien.
Elle additionne tout ce qui peut s'additionner et ne tient pas compte des
cellules contenant du texte.
Par contre je ne comprends n'arrive pas à faire fonctionner et à comprendre
ta 2em proposition.
La condition est toujours juste que je mette du texte ou des nombres dans
les cellules.

@+
Philippe

"Daniel.C" a écrit dans le message de news:
%
Bonjour.
1.
Somme =
Application.Sum(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
2.
If
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
_
<>
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
Then
MsgBox "cellule(s) non numérique(s)"
End If

Cordialement.
Daniel

Bonjour,

Existe-t-il en VBA une façon rapide de faire la somme des valeurs situées
dans différentes cellules pas forcement adjacentes suivantes ? Pour
éviter de faire :
Total = Range("D27").Value + Range("D27").Value + Range("D27").Value

Par Exemple si je veux calculer toutes ces cellules
Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21").Value

Autre question :
En reprenant le même raisonnement je voudrais m'assurer que toutes ces
cellules contiennent bien une valeur numérique.
Peut on faire une action globale qui me retournerait une erreur par
exemple si une de ces cellules est une chaine de caractère ?

@+
Philippe




Avatar
Daniel.C
Le copier coller fou a encore sévi !
Ceci devrait aller mieux :

If
Application.CountA(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
_
<>
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
Then
MsgBox "cellules non numériques"
End If

Daniel

Bonjour Daniel.C,

Ta 1ere proposition pour faire la somme des cellules fonctionne très bien.
Elle additionne tout ce qui peut s'additionner et ne tient pas compte des
cellules contenant du texte.
Par contre je ne comprends n'arrive pas à faire fonctionner et à comprendre
ta 2em proposition.
La condition est toujours juste que je mette du texte ou des nombres dans les
cellules.

@+
Philippe

"Daniel.C" a écrit dans le message de news:
%
Bonjour.
1.
Somme =
Application.Sum(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
2.
If
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
_
<>
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
Then
MsgBox "cellule(s) non numérique(s)"
End If

Cordialement.
Daniel

Bonjour,

Existe-t-il en VBA une façon rapide de faire la somme des valeurs situées
dans différentes cellules pas forcement adjacentes suivantes ? Pour éviter
de faire :
Total = Range("D27").Value + Range("D27").Value + Range("D27").Value

Par Exemple si je veux calculer toutes ces cellules
Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21").Value

Autre question :
En reprenant le même raisonnement je voudrais m'assurer que toutes ces
cellules contiennent bien une valeur numérique.
Peut on faire une action globale qui me retournerait une erreur par
exemple si une de ces cellules est une chaine de caractère ?

@+
Philippe




Avatar
Daniel.C
PS. C'est la différence du nombre de cellules obtenue avec les
fonctions NB et NBVAL de Excel.
Daniel

Le copier coller fou a encore sévi !
Ceci devrait aller mieux :

If
Application.CountA(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
_
<>
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
Then
MsgBox "cellules non numériques"
End If

Daniel

Bonjour Daniel.C,

Ta 1ere proposition pour faire la somme des cellules fonctionne très bien.
Elle additionne tout ce qui peut s'additionner et ne tient pas compte des
cellules contenant du texte.
Par contre je ne comprends n'arrive pas à faire fonctionner et à comprendre
ta 2em proposition.
La condition est toujours juste que je mette du texte ou des nombres dans
les cellules.

@+
Philippe

"Daniel.C" a écrit dans le message de news:
%
Bonjour.
1.
Somme =
Application.Sum(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
2.
If
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
_
<>
Application.Count(Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21"))
Then
MsgBox "cellule(s) non numérique(s)"
End If

Cordialement.
Daniel

Bonjour,

Existe-t-il en VBA une façon rapide de faire la somme des valeurs situées
dans différentes cellules pas forcement adjacentes suivantes ? Pour
éviter de faire :
Total = Range("D27").Value + Range("D27").Value + Range("D27").Value

Par Exemple si je veux calculer toutes ces cellules
Range("D27:D29,D32:D33,F27:F33,G27:G36,H27:H29,H32:H33,C50:C51,J16,J18,J20:J21,L20,L21").Value

Autre question :
En reprenant le même raisonnement je voudrais m'assurer que toutes ces
cellules contiennent bien une valeur numérique.
Peut on faire une action globale qui me retournerait une erreur par
exemple si une de ces cellules est une chaine de caractère ?

@+
Philippe