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 :
Hola ixbalanque:
¿Tú crees que hay alguna posibilidad de contestar a tu pregunta
con
exactitud, dada la paupérrima aportación de datos que has
proporcionado?

Si me permites, varios consejos:
1º Siempre es bueno (si se trata de código de macros,enviar lo que
se tenga
hecho, no hay que tener miedo a que los demás vean una pequeña
parte de
nuestro código, ya sea este muy bueno o muy malo. (Cuando yo
empecé a
escribir código no te puede imaginar los disparates que podía
llegar a
escribir y lo que me ayudaron los que en ese momento estaban por aquí.)
2º Es muy conveniente aportar rangos concretos (si los hay) o los nombre
concretos de los rangos (si hay definidos nombres); aportar también el
tipo
de datos de los rangos.
3º Cuando se trabaja con productos es muy conveniente poner un
CÓDIGO de
art. además de la descripción, (es más corto, y
además evita errores
ortográficos y de puntuación, uso de may y min, etc.)


Por ejemplo en tu caso se puede intuir, pero no se sabe si la columna
MOVIMIENTOS contiene texto como ENTRADA o SALIDA
puede estar en blanco o puede tener otro tipo de valor.
En cuento a la columna CANTIDAD ¿es la cantidad "del
MOVIMIENTO" o es el
stock final "después del MOVIMIENTO"?
¿En caso de que la columna MOVIMIENTOS sea la cantidad "del
MOVIMIENTO" hay
números + y -, o siempre son +?

Saludos.-



"ixbalanque"
escribió en el mensaje
de noticias news:
¡ 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??




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