SUmaproducto en Codigo ??

26/11/2007 - 16:30 por José A. Castrejón | Informe spam
Hola Buenos Dias

Actualmente utilizo para sumar un rango de datos a partir de una condicion
el siguiente codigo, con esto pongo las ventas totales de cada producto en un
listbox


Dim Cuantos As Integer
Dim Pro As Worksheet, Rg As Range, Contador As Integer
Dim I As Integer, Fila As Integer, Hay As Integer
Dim RgL As Range, Vtas As Double
Dim Part As Worksheet
Dim RgP As Range, RgC As Range

Set Pro = Sheets("PRODUCTOS")
Set Rg = Sheets("PRODUCTOS").Range("B2:B60000")
Set RgP = Sheets("PARTIDAS").Range("K2:K60000")
Set RgC = Sheets("PARTIDAS").Range("A2:A60000")

Cuantos = Application.WorksheetFunction.CountIf(Rg, ">0")

If Cuantos <= 0 Then Exit Sub

Cuantos = Cuantos + 1

ConsProd.LstProd.Clear

For I = 2 To Cuantos

If Pro.Cells(I, 7) >= 0 And Pro.Cells(I, 3) <> "Disponible" Then
ConsProd.LstProd.AddItem
ConsProd.LstProd.List(Fila, 0) = Pro.Cells(I, 2)
ConsProd.LstProd.List(Fila, 1) = Pro.Cells(I, 3)
Vtas = Application.WorksheetFunction.SumIf(RgC, Pro.Cells(I, 2),
RgP)
ConsProd.LstProd.List(Fila, 2) = Format(Vtas, "##,##0.00")
Fila = Fila + 1
Contador = Contador + 1
If Contador = Cuantos Then Exit For
End If
Next

Pero si quisiera sumar con mas de 1 condicion ????

En una hoja de calculo usaria Sumaproducto..con algo tipo:
=sumaproducto(--(rango=condicion),--(rango,condicion),(rango a sumar))

Como traduzco lo anterior a codigo, especialmente los guiones que convierten
a FALSO/VERDADERO...

O lo debo hacer de otta forma, no quiero recurrir a calcular esto en la
hoja, quisiera calcularo en el codigo.


Gracias y Saludos
 

Leer las respuestas

#1 AnSanVal
26/11/2007 - 22:11 | Informe spam
En este caso (como en muchos otros); activa la grabadora de macros, escribe
la fórmula en una celda y detén la grabadora. Con esto tienes el código que
pides, con condiciones y rangos incluidos.

Saludos desde Tenerife (Islas Canarias).
************************************************
"José A. Castrejón" escribió en el
mensaje news:
Hola Buenos Dias

Actualmente utilizo para sumar un rango de datos a partir de una condicion
el siguiente codigo, con esto pongo las ventas totales de cada producto en
un
listbox


Dim Cuantos As Integer
Dim Pro As Worksheet, Rg As Range, Contador As Integer
Dim I As Integer, Fila As Integer, Hay As Integer
Dim RgL As Range, Vtas As Double
Dim Part As Worksheet
Dim RgP As Range, RgC As Range

Set Pro = Sheets("PRODUCTOS")
Set Rg = Sheets("PRODUCTOS").Range("B2:B60000")
Set RgP = Sheets("PARTIDAS").Range("K2:K60000")
Set RgC = Sheets("PARTIDAS").Range("A2:A60000")

Cuantos = Application.WorksheetFunction.CountIf(Rg, ">0")

If Cuantos <= 0 Then Exit Sub

Cuantos = Cuantos + 1

ConsProd.LstProd.Clear

For I = 2 To Cuantos

If Pro.Cells(I, 7) >= 0 And Pro.Cells(I, 3) <> "Disponible" Then
ConsProd.LstProd.AddItem
ConsProd.LstProd.List(Fila, 0) = Pro.Cells(I, 2)
ConsProd.LstProd.List(Fila, 1) = Pro.Cells(I, 3)
Vtas = Application.WorksheetFunction.SumIf(RgC, Pro.Cells(I,
2),
RgP)
ConsProd.LstProd.List(Fila, 2) = Format(Vtas, "##,##0.00")
Fila = Fila + 1
Contador = Contador + 1
If Contador = Cuantos Then Exit For
End If
Next

Pero si quisiera sumar con mas de 1 condicion ????

En una hoja de calculo usaria Sumaproducto..con algo tipo:
=sumaproducto(--(rango=condicion),--(rango,condicion),(rango a sumar))

Como traduzco lo anterior a codigo, especialmente los guiones que
convierten
a FALSO/VERDADERO...

O lo debo hacer de otta forma, no quiero recurrir a calcular esto en la
hoja, quisiera calcularo en el codigo.


Gracias y Saludos




Preguntas similares