Comment faire la Somme de plusieurs cellules ?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #21571671
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"
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
Daniel.C
Le #21571801
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
Jacky
Le #21571791
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"
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

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


"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"
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





Gouap
Le #21573791
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" %
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




Daniel.C
Le #21574171
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" %
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




Daniel.C
Le #21574161
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" %
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
Publicité
Poster une réponse
Anonyme