Macro para modificar un valor de una hoja desde otra

Ejemplo:

En la hoja2 tengo cargados los productos, en A1 tengo el producto, en B2 el precio y en C2 la cantidad y asi con los demás productos.

Ahora en la Hoja1 en la celda B2 tengo una validación de datos con lista con los productos de la Hoja1 cargados en la columna A.

Lo que necesito es que al buscar de la lista desplegable en la hoja1 B2 un producto en particular al colocar debajo en la Celda B3 el precio y en la celda B4 la cantidad con un boton que diga modificar me modifique automáticamente esos valores de la hoja2. En el caso del precio que se borre y aparezca el precio nuevo pero en el caso de la cantidad necesito que se sume a la cantidad existente.

1 respuesta

Respuesta
1
Sub CambioPrecio()
'Evito movimientos en la pantalla
Application.ScreenUpdating = False
'Dimensiono variables
Dim h1, h2 As Worksheet
Dim origen, buscar As Range
Dim c As Object
On Error Resume Next
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Hoja2")
Set origen = h1.Range("A")
Set buscar = h1.Range("B2")
'
If buscar.Value = "" Then
   MsgBox "Ops! parece que no a seleccionado ningun producto.", vbInformation, "ERROR INESPERADO"
Exit Sub
End If
Set c = h2.Range("A:A").Find(buscar, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
dire = c.Address
h2.Range(dire).Offset(1, 1).Value = h1.Cells(3, "B").Value
h2.Range(dire).Offset(1, 2).Value = h1.Cells(4, "B").Value
End If
Application.ScreenUpdating = True
End Sub

Si usas una lista desplegable que no te deje escribir nada que este seleccionado asi te funcionara bien

Si la lista te permite escribir aparte de mostrar lo que esta seleccionado antes del

"Application.ScreenUpdating=True"

agrega este IF

If c Is Nothing Then
MsgBox "El producto no existe", vbCritical, "ERROR INESPERADO"
Range("B2").ClearContents
End If

Asi sino existe te avisa y borra la celda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas