Como hacer que una macro sume el valor de una celda a otra?

En primer lugar, quiero agradecer por revisar mi pregunta. Mi problema básicamente es que en Excel tengo dos hojas, en hoja 1 un inventario con códigos de productos, descripción, ventas y compras, al modificar algunos de estos parámetros de modifican consecuentemente otros por ejemplo al asentar ventas, se descuentan unidades del stock y se suma montos de ventas, al realizar compras se suma stock y se descuenta de balance, todo ello en hoja 1, en hoja 2 tengo un registro de ventas diarias con los datos de la misma, como unidades vendidas código de producto, importe unitario y total, mediante una macro (dejo el código al final) selecciono de este registro de ventas el código del producto y me lleva a hoja 1 y me selecciona la fila de ese producto e ingreso manualmente la suma de unidades vendidas a un monto ya existente (lo cual descuenta del inventario esas unidades), la suma del dinero cobrado (lo que a su vez se suma a un balance general) copio el costo de las unidades vendidas y me lo llevo manualmente a hoja 2 para realizar otros cálculos. Mi pregunta es si es posible mediante una macro o una modificación de la que tengo, que mediante datos de hoja 2 (ingresados en celdas distintas, una para cada venta, por lo que seria bueno seleccionarlas mediante click) automáticamente me sume al monto existente una cantidad determinada de unidades, me sume al monto existente en otra celda un determinado importe y me copie el dato de una celda y me lo lleve a hoja 2. No tengo inconveniente en que sea mediante selección de celda o formulario, cualquier ayuda u orientación la agradezco.

Sub BuscarCodigo()

    Set h1 = Sheets("Ventas")

    Set h2 = Sheets("Stock")

    '

    If ActiveCell.Column <> 3 Or ActiveCell.Value = "" Then

        MsgBox "Selecciona un código", vbExclamation

        Exit Sub

    End If

    Set b = h2.Columns("B").Find(ActiveCell.Value, lookat:=xlWhole)

    If Not b Is Nothing Then

        h2.Select

        h2.Rows(b.Row).Select

    Else

        MsgBox "El código no existe", vbExclamation

    End If

1 respuesta

Respuesta

Podrías colocar un botón que te permita actualizar todos tus datos de manera automática.

'recorre todas las filas hasta encontrar una vacío

'fila inicial

posicion = 1

'columna que se tomara como referencia para saber si ya no existe mas filas

columna =1

valor = Sheets("hojax").Cells(posicion, columna)
Do While valor <> Empty

otro_dato=Sheets("hojax").Cells(posicion, 2)'columna2

'buscar en otra hoja

posicion2=1

columna2=1

                   valor2 = Sheets("hojay").Cells(posicion2, columna2)

                     Do While valor2 <> Empty

                          if valor = valor2 then

                     otrovalor2= Sheets("hojay").Cells(posicion2, 2)

                                     Sheets("hojay").Cells(posicion2, 2)=otrovalor2+otro_dato

                                        'otras actualizaciones y otros casos

                         end if

                        posicion2=posicion2+1

'importante para que no entre al bucle infinito

                    valor2 = Sheets("hojay").Cells(posicion2, columna2)

                     Loop

posicion=posicion+1

valor = Sheets("hojax").Cells(posicion, columna)

Loop

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas