miércoles, 18 de febrero de 2015

VBA: Trasladar datos de inventario....

En varias ocasiones me han solicitado 'ayuda' para resolver un mismo problema; lo que me hace pensar este ejercicio corresponde a algún Curso de Excel o formación...???.
El ejercicio consiste en trasladar los datos completados, de un inventario, al item correspondiente.
Veamos la pregunta planteada por el último de los usuarios:
...como puedo poner un botón en Excel para que al presionarlo, las ENTRADAS Y/O SALIDAS se pongan automáticamente en las coordenadas correspondientes...


El modelo de datos es el siguiente:

VBA: Trasladar datos de inventario....


El objetivo es, entonces, que el usuario en la celda A2 introduzca el ID del item a completar, para luego rellenar (según corresponda) el dato de Entrada o Salida en las celdas D2, E2, para a continuación trasladar el dato al inventario de la parte inferior, a su fila correspondiente.

Insertamos el siguiente procedimiento 'InsertaInfo', al que luego asignaremos al botón 'Agregar dato':

Sub InsertaInfo()
'Buscamos la fila que corresponde al item seleccionado en A2
With Range("A5:A19")
    Set c = .Find(Range("A2").Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            fila = c.Row    'fila buscada
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

'trasladamos los datos de Entradas/Salidas - celdas D2:E2
'acumulando el dato al ya existente!!
Cells(fila, "D").Value = Cells(fila, "D").Value + Cells(2, "D").Value
Cells(fila, "E").Value = Cells(fila, "E").Value + Cells(2, "E").Value

End Sub



El resto lo hace las sencillas fórmulas/funciones del modelo:

VBA: Trasladar datos de inventario....

2 comentarios:

  1. hola que tal buen dia, yo busco lo siguiente, tengo un base acumulada de datos de los cuales es un listado de ene lineas de las cuales se pueden ir repitiendo con distinta cantidad, estas lineas son capturadas como una salida de inventario, antes de migrarla a una base y salida de impresión deseo tener el acumulado previo por cada linea que no este duplicada, espero haberme explicado. gracias. saludos.

    ResponderEliminar
    Respuestas
    1. Hola Leonardo,
      lo más simple, si he comprendido bien, es que construyas una tabla dinámica sobre tu base de datos... con ello obtendrás u listado de items únicos con el dato sumado acumulado

      Saludos

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.