sumifs sur plusieurs colonnes

moutchec

XLDnaute Occasionnel
bonjour le forum,
bonjour à tous,
j'ai besoin d'aide pour corriger ce code VBA qui me donne 0 en E219
comment l'étendre jusqu'a BD219?
merci d'avance pour votre aide.


Private Sub CommandButton1_Click()

T = "SUMIFS(E3:E218,D3:218,charg)"

Cells(219, 5) = Evaluate(T)

End Sub



cordialement.
Moutchec.
 

Pièces jointes

  • Classeur1.xlsm
    63.8 KB · Affichages: 8

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

Je ne suis pas sûr de comprendre la question.
Exemple de Somme.Si.Ens() qui calcule une somme sur 3 colonnes (B,C,D).

Code:
Sub essai3()
  T = "sumproduct(SUMIFS(offset(B2:b10,,{0;1;2}),A2:A10,""x""))"
  Cells(2, 10) = Evaluate(T)
End Sub

ou


Code:
Sub essai2()
  T = "sumproduct(SUMIFS(offset(B2:b10,,column(a:c)-1),A2:A10,""x""))"
  Cells(2, 10) = Evaluate(T)
End Sub

Boisgontier
 

Pièces jointes

  • Copie de SommeSiColMult.xlsm
    17.3 KB · Affichages: 9
Dernière édition:

moutchec

XLDnaute Occasionnel
Bonjour,

Je ne suis pas sûr de comprendre la question.
Exemple de Somme.Si.Ens() qui calcule une somme sur 3 colonnes (B,C,D).

Code:
Sub essai3()
  T = "sumproduct(SUMIFS(offset(B2:b10,,{0;1;2}),A2:A10,""x""))"
  Cells(2, 10) = Evaluate(T)
End Sub

ou


Code:
Sub essai2()
  T = "sumproduct(SUMIFS(offset(B2:b10,,column(a:c)-1),A2:A10,""x""))"
  Cells(2, 10) = Evaluate(T)
End Sub

Boisgontier


bonjour et merci pour votre intérêt,
ce n'est pas tout à fait cela.
dans le tableau joint au premier post, j'aimerais que le code fasse le calcul par exemple de E3 à E218 si de D3 à D218 il est écrit "charg", résultat à mettre en E219.
en F219 la même chose avec les chiffres de F3 à f218 et ainsi de suite jusqu'à BD219.
Merci bcp.
Moutchec.
 

job75

XLDnaute Barbatruc
Bonjour moutchec, JB, le forum,
Code:
Private Sub CommandButton1_Click()
[E219:BD219] = "=SUMIFS(E3:E218,$D3:$D218,""charg"")"
[E219:BD219] = [E219:BD219].Value
End Sub
Comme 2 colonnes seulement sont étudiées SUMIF (SOMME.SI) va bien :
Code:
Private Sub CommandButton1_Click()
[E219:BD219] = "=SUMIF($D3:$D218,""charg"",E3:E218)"
[E219:BD219] = [E219:BD219].Value
End Sub
Bonne journée.
 

moutchec

XLDnaute Occasionnel
Bonjour moutchec, JB, le forum,
Code:
Private Sub CommandButton1_Click()
[E219:BD219] = "=SUMIFS(E3:E218,$D3:$D218,""charg"")"
[E219:BD219] = [E219:BD219].Value
End Sub
Comme 2 colonnes seulement sont étudiées SUMIF (SOMME.SI) va bien :
Code:
Private Sub CommandButton1_Click()
[E219:BD219] = "=SUMIF($D3:$D218,""charg"",E3:E218)"
[E219:BD219] = [E219:BD219].Value
End Sub
Bonne journée.

bonjour et merci à vous,
ça marche en effet avec sumif.
y aurat-il moyen svp de faire en sorte que quand il n'y a rien à calculer, les cellules de E219 à BD 219 restent vides ? (ne pas affciher "0").
encore merci.
cordialement.
Moutchec.
 

job75

XLDnaute Barbatruc
Re,

Soit vous masquez les valeurs zéro par MFC ou avec le format nombre personnalisé 0;; soit vous complétez le code :
Code:
Private Sub CommandButton1_Click()
[E219:BD219] = "=SUMIF($D3:$D218,""charg"",E3:E218)"
[E219:BD219] = [E219:BD219].Value
[E219:BD219].Replace 0, "", xlWhole
End Sub
A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 165
Messages
2 085 879
Membres
103 009
dernier inscrit
dede972