Buscar datos y pegar en otra hoja

Espero me puedan ayudar con mi problema por favor gracias
En la hoja 1 tengo datos acerca de productos, el año y sus características necesito una macro que haga la búsqueda del producto y
lo pego en la hoja 2 me gustaría a la hora que se pegue el resultado que si su valor es 2013 lo pegue en B2 y si su valor es 2014 lo pegue en B3
Ejemplo de datos en la hoja1:
B C D
Producto Año Color
Goma 2013 azul se pega en B2 en la hoja2
Goma 2014 rojo se pega en B3 en la hoja2

1 Respuesta

Respuesta
1

'Necesito una macro que haga la búsqueda del producto'... y ¿cómo sabrá Excel qué dato buscar?

Falta que aclares cuándo debe ser ejecutada la macro o dónde se le indica qué producto buscar.

Sdos, quedo a la espera de tus aclaraciones.

en la hoja1 tengo datos:

B C D .......K (COLUMNAS)
Producto Año Color
goma 2013 azul
goma 2014 rojo

lápiz 2014 vede

me gustaría que la macro este en un botón en la hoja1 y que cuando se presione se busque por medio de un textbox que busque por producto y que si encuentra los pegue junto con toda la información de la fila en la hoja2

La información de la hoja1 llega hasta la columna K

si es 2013 lo pegue en B2 y si es 2014 en B3 en la hoja2


Gracias.

Hay tantas opciones o 'particularidades' a la hora de 'copiar y pegar' que merecieron ser todo un tema para una de mis guías temáticas.

Copiar con o sin formato, con o sin fórmulas, solo valores, etc

Aquí un ejemplo de lo que se desprende de tu consulta. Dibujá un botón con la barra Formulario, clic derecho sobre el botón, opción 'Asignar macro' y le asignás ésta que previamente habrás copiado en un módulo del Editor:

Sub copiaDatos()
'x Elsamatilde
dato = InputBox("Ingrese dato a copiar", "SOLICITUD")
'si cancela el mensaje, cancela el evento
If IsEmpty(dato) Then Exit Sub
'busca el dato en hoja activa, col B
Set busco = Range("B:B").Find(dato, LookIn:=xlValues, lookat:=xlWhole)
'si lo encontró lo copia en hoja 2 a partir de col B
If Not busco Is Nothing Then
 If busco.Offset(0, 1) = 2013 Then filx = 2
 If busco.Offset(0, 1) = 2014 Then filx = 3
 Range("B" & busco.Row & ":K" & busco.Row).Copy Destination:=Sheets("Hoja2").Range("B" & filx)
End If
Set busco = Nothing
'si debe seguir buscando el producto, para encontrar el del otro año dejar las sgtes instrucciones
'recorre la col B hasta el fin o hasta encontrar otro prod
busco.Select
x = 0
While ActiveCell.Value <> "" And x = 0
If ActiveCell.Value <> dato Then
 'si no corresponde al dato buscado paso a la fila sgte
 ActiveCell.Offset(1, 0).Select
Else
 If ActiveCell.Offset(0, 1) = 2013 Then filx = 2
 If ActiveCell.Offset(0, 1) = 2014 Then filx = 3
 Range("B" & ActiveCell.Row & ":K" & ActiveCell.Row).Copy Destination:=Sheets("Hoja2").Range("B" & filx)
 'marco la variable para salir
 x = 1
End If
Wend
End Sub

Observa que tiene un agregado para buscar el 2do año para ese producto.

Se entiende entonces que solo habrá hasta 2 productos iguales.

Muchas gracias por responder en la macro me marca error:

se ha producido el error '91' en tiempo de ejecución
variable de objeto o bloque with no establecido

cuando intenta buscar el segundo valor sale el error.

Si solo existen dos valores iguales

Gracias por la ayuda.

Ah, si, xq esa sección la agregué luego de terminar la 1ra parte.

Quitá esta línea (no se debe limpiar la variable xq se necesita a continuación)

Set busco = Nothing



Sdos

Elsa


ya corre la macro pero solo copia un valor de 2013 y no copia el de 2014

cuando busco por un producto

Producto Año Color
goma 2013 azul
goma 2014 rojo

si busco goma solo lo pega el de 2013 no pega los dos valores en la hoja2

Eso me pasa x responder consultas un domingo ;(

La línea del Busco.Select reemplazala x esta:

busco.Offset(1, 0).Select

Ahora sí está probada en su totalidad. Quedamos en que solo habrá 2 repeticiones x cada producto, ¿verdad?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas