[Catégorie modifiée .Net -> VBA] fonction Sum incrémentation verticale vba [Résolu]

Signaler
Messages postés
25
Date d'inscription
mercredi 18 mai 2011
Statut
Membre
Dernière intervention
17 juillet 2013
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
J'ai un petit soucis... Je suis débutant et je me demande comment faire une somme avec la fonction SUM pour qu'elle s'exécute sur plusieurs ligne. je m'explique.

A B C D
1
2 1 1 1
3 2 2
4 3 3
5 4 ....

Dans la colonne A je voudrais faire la somme des colonnes B, C, D : A1 = B1+C1+D1
A2 = B2+C2+D2 etc...

Comment faire pour programmer l'affichage de valeur en "diagonale" et comment programmer cette somme qui serait du style :
For k = 1 To
Range("A1").Offset(k + 0) = WorksheetFunction.Sum(Feuil1.Range("Lk:Mk"))
Next k

merci d'avance....

12 réponses

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Essayes :
Si Index est ton compteur de ligne avec comme valeur de départ 1.

Range("L" & Index & ":" & chr$(asc("K")+Index) & Index)

Tu devrait obtenir le résultat désiré.

Mon site
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Concaténation de chaine :
MaChaine="Chaine1" & Valeur1 & "Chaine2"

Mon site
Messages postés
25
Date d'inscription
mercredi 18 mai 2011
Statut
Membre
Dernière intervention
17 juillet 2013

en fait je me suis mal exprimé. Les valeurs que je dois rentrer dans ce tableau je les récupère ailleur. Je les saisie pas.
De plus, je voulais savoir si on pouvais avoir une somme du style

for k = 1 to 10 (par exemple)
Range("A1").Offset(,k + 0) = WorksheetFunction.Sum(Feuil1.Range("Bk:Dk"))
Next k

C'est possible ca ????
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Pour la concaténation, je parlais ce cette chaine :
"Bk:Dk"

pourquoi "k+0" et pas tout simplement "k" ?

Mon site
Messages postés
25
Date d'inscription
mercredi 18 mai 2011
Statut
Membre
Dernière intervention
17 juillet 2013

ok. j'avoue que "k" suffit amplement ^^

Mais apres je comprend pas cette histoire de concaténation
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Quelque soit la valeur de k, tu fais référence à la même plage de cellules.
"Bk:Dk"

Mais jamais à "B1:K1", "B2:K2", ...

Range("A1").Offset(,k + 0) = WorksheetFunction.Sum(Feuil1.Range("B" & k & ":D" & k))

là ça fonctionnera mieux, je pense.

Mon site
Messages postés
25
Date d'inscription
mercredi 18 mai 2011
Statut
Membre
Dernière intervention
17 juillet 2013

j'ai appliqué ton astuce à mon cas mais ca ne fonctionne pas. Quand j'execute il ne fait pas la somme de B et D. je te montre mon cas :

For m = 1 To j

Range("L1").Offset(m, m - 1) = CO2NonRejete

Range("K1").Offset(m) = WorksheetFunction.Sum(Feuil1.Range("L" & m & ":U" & m))

Next m

Ba ca ca ne marche pas..... Il ne fait pas la somme de la plage de cellule Lm à Um
Messages postés
25
Date d'inscription
mercredi 18 mai 2011
Statut
Membre
Dernière intervention
17 juillet 2013

En fait je voudrai que pour :

m = 1
L2 = CO2NonRejete
avec K2 = L2

m = 2
L3 L2 et M3 CO2NonRejete
avec K3 = L3 + M3

m = 3
L4 L3 et M4 M3 et N4 = CO2NonRejete
avec K4 = L4 + M4 + N4
Er cela ainsi de suite jusqu'à m = j
Messages postés
25
Date d'inscription
mercredi 18 mai 2011
Statut
Membre
Dernière intervention
17 juillet 2013

slt. En fait j'ai trouver une méthode grace à ta concaténation. Seulement en fait je veut copier une plage de cellules et pas seulement un ou 2...

w = m + 1

Sheets("Feuil1").Range("L" & m & ":L" & w).Copy Sheets("Feuil1").Range("L" & w & ":L" & w)

Je me suis grandement inspiré de ton aide. seulement je copie pas une plage....

please help
Messages postés
25
Date d'inscription
mercredi 18 mai 2011
Statut
Membre
Dernière intervention
17 juillet 2013

Bonjour,

Merci de ton aide.

J'ai essayé ta ligne de code.
Il me dit " utilisation incorrecte de la propriété" et il me sélectionne "Range"....

Grrrr. Je sais pas de quoi ca vient...

Merci encore
Messages postés
25
Date d'inscription
mercredi 18 mai 2011
Statut
Membre
Dernière intervention
17 juillet 2013

Merci beaucoup !!!

Ca marche super...

Par contre je peut rien écrir dans la colonne M.
Si je décalle à la colonne N ca marche mais M.....
Bizare.

En tout cas merci beaucoup.
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Alors, là, je ne comprend pas.

Peux-tu mettre le code que tu as confectionné pour comprendre ?

Mon site