Recorrer una columna excel, encontrar datos que cumplen una condición y pegarlos en otra hoja

Estoy trabajando en un bucle que no termina de funcionarme, espero que puedan ayudarme.
Consiste en ir recorriendo la columna A de la hoja 1, con numero de filas variable, localizar todos los datos que cumplan la condición de que va siempre precedido de la palabra "producto", copiar este dato, copiar también el dato de la fila superior, y el de la inferior, y pegar estos tres en las columnas A, B, C de la hoja 2.
Por ejemplo estos datos origen forman las filas de la columna 1:
a
b
Producto tomates
c
Producto fresas
d
e
Producto lechugas
f
... Etc ...
El resultado para el primer producto, se mostraría en la hoja 2 incluyendo el contenido de las filas anterior y posterior a la que contiene la palabra "producto" asi:
b tomates c
Para el segundo producto:
c fresas d

1 Respuesta

Respuesta
1
Pues aquí tienes la macro que lo hace. En mi ejemplo los datos de la hoja1 empiezan en la celda A1. Para ejecutarla tienes que estar posicionado en el primer dato de la hoja1. (Si cambias de nombre a la hoja2, tendrás que cambiarlo también en la macro. Esta macro funciona llamándose hoja2)
Sub busca_producto()
fila = 1
Do While ActiveCell.Value <> ""
valor = ActiveCell
If Left(ActiveCell, 8) = "producto" Then
Range(ActiveCell.Offset(-1, 0), ActiveCell.Offset(1, 0)).Copy
Sheets("hoja2").Cells(fila, 1).PasteSpecial Paste:=xlValues, Transpose:=True
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
Sheets("hoja2").Select
Range("b1").Select
Do While ActiveCell.Value <> ""
producto = ActiveCell
producto = Trim(Replace(producto, "producto", ""))
ActiveCell = producto
ActiveCell.Offset(1, 0).Select
Loop
End Sub
No olvides finalizar y puntuar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas