calcular stock

17/08/2012 - 09:14 por ixbalanque | Informe spam
¡ Hola !
Tengo 3 columnas en excel, DESCRIPCION (con productos), otra MOVIMIENTOS (entradas y salidas de productos) y una tercera CANTIDAD (valor numérico del stock entradas y salidas), estoy filtrando desde una macro en visual basic cada vez q eligo un producto desde un combobox primero la columna DESCRIPCION luego la columna MOVIMIENTOS y deseo obtener la suma de entradas del producto seleccionado, pero no halló como sumar estos valores de la columna CANTIDAD desde visual basic y restar después entradas y salidas y tener el stock actualizado por cada producto, pueden ayudarme??
 

Leer las respuestas

#1 ixbalanque
21/08/2012 - 07:31 | Informe spam
Juan Español escribió el 20/08/2012 13:34 :
Mostrar la cita
Tenés razón!
Estoy programando desde un formulario para una hoja de excel.

1- La columna DESCRIPCIÓN tiene texto (Productos), columna B
2- La columna MOVIMIENTOS tiene texto (ENTRADA o SALIDA), columna C
3- La columna CANTIDAD tiene números (si es entrada es positivo y si es salida es negativo), columna G

a) Hago un filtrado de la columna B (DESCRIPCIÓN) para discriminar un solo producto,

b) de tal manera que en la columna C (MOVIMIENTOS) me quedan los textos de entradas y salidas de ese producto,

c) por lo tanto en la columna G (CANTIDAD) están visibles las cantidades de entradas y salidas de ese producto

c.1) Lo que necesito es sumar esas cantidades (en la columna G) visibles que son las correspondientes al texto previamente filtrado de la columna B desde visual basic.

Aquí el code de lo que estoy intentando sin éxito:

Private Sub ACEPTAR_Click()
Sheets("MOVIMIENTOS").Activate 'ACTIVO LA HOJA

If (SEL.ListIndex = -1) Then 'SI EL COMBOBOX ES VACÍO
MsgBox ("Seleccionar una REFACCIÓN")
SEL.SetFocus
Exit Sub
Else

If SEL.ListIndex <> "" Then 'SI SE SELECCIONA ALGO
Text = SEL.Text

'LO ESCRIBO EN LA HOJA ACTIVA DE EXCEL EN LA COLUMNA B
NextRow = Application.WorksheetFunction.CountA(Range("B:B")) + 2
Cells(NextRow, 2) = Text

'HAGO EL FILTRADO DE LA COLUMNA B
Range("B2:B1048576").Select
Selection.AutoFilter
ActiveSheet.Range("$B$3:$B$1048576").AutoFilter Field:=1, Criteria1:=Text

'VARIABLES A USAR
Dim fila As Integer
Dim columna As Integer
Dim rango As Range
Dim suma As Long

fila = ActiveCell.Row 'FILA ACTIVA DEL FILTRO ¡eso creo!
columna = ActiveCell.Column 'COLS ACTIVAS DEL FILTRO

Set rango = Range(Cells(3, 7), Cells(fila, 7))
suma = Application.WorksheetFunction.Sum(rango)

'suma = SUBTOTALES(2, "G2:G1048576") NO SE SI PUEDO USAR ESTA O CÓMO??
TextBox7 = suma
Selection.AutoFilter 'LIBERO ELFILTRO

End If

End If

MsgBox ("Seleccionar un CÓDIGO")
CODE.SetFocus

End Sub

Preguntas similares