VBA somme prod d'une colonne d'un objet range

pierrequimousse

XLDnaute Junior
Bonjour (ou rebonjour !) le forum !

Après quelques recherches sur les différents fils je ne trouve pas de solution...

J'ai un objet type range (appellé plage), et j'ai besoin comme variable d'une somme prod type sommeprod(colonne4<>0*colonne5) appelée n (colonne 5 est un nombre entier)

j'ai essayé avec la propriété "sum" mais aucun résultat bien concluant...

Voici un petit bout de mon code, il ne manque que le calcul de "n" !!!

Sub Macro1()

Dim i, n As Integer 'n = nbre d'étiquettes a réaliser
i = 1


Set plage = ActiveCell.Resize(22, 5)


n =

With ActiveSheet
While i < n
Feuil8.Range("A" & i & ":E" & i).Value = .Range("N1").Value
i = i + 4
Wend
End With
End Sub

Avez vous quelque piste pour me débloquer ?

D'avance merci !!

Pierre
 

soenda

XLDnaute Accro
Re : VBA somme prod d'une colonne d'un objet range

Bonjour le fil, pierrequimousse

variable = sommeprod(colonne4<>0*colonne5)
Ca ressemble plutôt à un Somme.Si(plage;condition;somme_plage)
que l'on pourrait écrire :
Code:
 x = [SUMIF(A1:A6,"<>0",B1:B6)]
Qui fait la somme des entiers de B SI en colonne A, An <> 0
Les plages sont à adapter

A plus
 

pierrequimousse

XLDnaute Junior
Re : VBA somme prod d'une colonne d'un objet range

Bonjour soenda,

désolé je n'arrive pas a faire fonctionner ta formule, en la testant et en me demandant d'afficher "x" dans telle cellule, j'ai une incompatibilité de type...

Là j'avoue que je n'y comprend plus grand chose, étant novice en vba ca dépasse surement mes capacités !!!
 

pierrequimousse

XLDnaute Junior
Re : VBA somme prod d'une colonne d'un objet range

bonjour, on a équivalence entre sommeprod et sommesi dans ce cas :

sommeprod((A1:A5<>0)*B1:B5)

et

sommesi(A1:A5;<>0;B1:B5)

En fait j'utilise plus souvent sommeprod qui permet de mettre plusieurs critères, mais dans le cas présent c'est l'un ou l'autre.

Pour le VBA j'ai une plage appellée "plage" sur laquelle j'aimerais faire ce calcul

set plage=ActiveCell.Resize(23, 5)

critère : sur colonne 4 de la plage <>0
Somme : sur colonne 5 de la plage

Voila si vous voyez le code qui me permette d'appeler n= le résultat de ce calcul (n as integer), je suis preneur !!!

Merci à vous !

Pierre
 

pierrequimousse

XLDnaute Junior
Re : VBA somme prod d'une colonne d'un objet range

Oui j'ai essayé l'enregistreur mais le problème c'est qu'il me donne la formule qu'il met dans la cellule, alors que je voudrais que ma macro fasse le calcul et enregistre le résultat comme une variable n, sans passer par les cellules...
Le but est d'utiliser cette varable n comme la borne sup d'une boucle...

Peut être que je me complique la vie, si vous voyez une solution claire et limpide je suis preneur !!!

A +

Pierre
 

soenda

XLDnaute Accro
Re : VBA somme prod d'une colonne d'un objet range

Bonjour le fil, Mutzik, pierrequimousse

Puisque SommeSi convient :
Code:
n = WorksheetFunction.SumIf(Range("A1:A5"), "<>", Range("B1:B5"))
Les plages sont à adapter,
de plus, tu peux préférer ">0" à "<>" ...

Pour SommeProd, je cherche encore :eek:

A plus
 

Discussions similaires

Réponses
8
Affichages
674

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2