Te anexo la macro, con lo siguiente:
1. Si el código existe y es igual a 0, actualiza existencia y ubicación
2. Si existe el código y no es igual a 0, y las ubicaciones son diferentes, entonces suma las existencias y agrega la ubicación. (5 BOX-01/5 EST-02)
3. Si el código no existe, agrega un registro al final.
Cambian en la macro, en las siguientes líneas, las columnas correspondientes
col = "A" 'código
exi = "F" 'existencia
ubi = "G" 'ubicación
Sub Actualizar()
'Por.Dante Amor
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Hoja2")
'
col = "A" 'código
exi = "F" 'existencia
ubi = "G" 'ubicación
'
For i = 1 To h2.Range(col & Rows.Count).End(xlUp).Row
If h2.Cells(i, exi) <> 0 Then
Set b = h1.Columns(col).Find(h2.Cells(i, col), lookat:=xlWhole)
If Not b Is Nothing Then
'si lo encontró
If h1.Cells(b.Row, exi) = 0 Then
'si la existencia de la hoja1 es 0, actualiza existencia y ubicación
h1.Cells(b.Row, exi) = h2.Cells(i, exi)
h1.Cells(b.Row, ubi) = h2.Cells(i, ubi)
Else
'si es diferente de 0
If InStr(1, h1.Cells(b.Row, ubi), h2.Cells(i, ubi)) = 0 Then
'si las ubicación2 no está en la ubicación de la hoja1
'Suma las existencias y agrega la ubicación
h1.Cells(b.Row, exi) = h1.Cells(b.Row, exi) + h2.Cells(i, exi)
h1.Cells(b.Row, ubi) = h1.Cells(b.Row, ubi) & "/" & h2.Cells(i, ubi)
End If
End If
Else
'no lo encuentra y lo agrega al final
u = h1.Range(col & Rows.Count).End(xlUp).Row + 1
h2.Rows(i).Copy h1.Rows(u)
End If
End If
Next
h1.Select
MsgBox "Actualización terminada", vbInformation
End Sub
Sigue las Instrucciones para un botón y ejecutar la macro
- Abre tu libro de Excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo
- En el panel del lado derecho copia la macro
- Ahora para crear un botón, puedes hacer lo siguiente:
- Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
- Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
- Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
- Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: pinta
- Aceptar
- Para ejecutarla dale click a la imagen.
Saludos. Dante Amor