Copiar, con macro, 1 código en cada hoja

Tengo un listado de productos en una hoja excel, en la columna A el código de cada producto, en la B el nombre, en la DE el precio y en la E el nombre del cliente, las demás columnas no tienen importancia para la pregunta. ¿Cómo puedo copiar, mediante una macro, para agrupar cada código en una hoja diferente y que copie las celdas de la columna B, DE y E de cada código repetido que encuentre en la hoja?
Al mismo tiempo me interesaría que se coloree en la col. Precio, las cantidades que sean inferior o superior a un margen estándar que figura en la celda A2 de la hoja de cada producto.

1 Respuesta

Respuesta
1
Si son pocos los códigos, podes hacerlo manualmente. Si son muchos y necesitás una macro, realizá el primer paso manualmente pero con la grabadora de macros encendida (menu Herramientas, Macros, Grabar)
Cuando termines los pasos que te explico a continuación, detené la grabadora y en un módulo del Editor encontrarás la rutina. Escribila aquí si necesitás ayuda para completar para completar el total de registros.
La manera de pasar rangos es filtrando por la col códigos.
Seleccioná las filas resultantes 'desde su encabezado o nro' y copiar.
Seleccioná la hoja destino y clic en pegar.
Con respecto al color, utilizá formato condicional, donde Valor de celda < A2 tendrá un color o formato y valor de celda > A2 otro o el mismo.
Se trata de un listado en el que cada día se van añadiendo nuevos registros, y al final de cada día se tendría que hacer toda la operación. Por eso es por lo que consultaba si se puede hacer con una macro que cada vez borre los datos de las hojas de cada código y actualice los datos que haya introducidos hasta el momento en la hoja de listado de productos.
Siento no haberme explicado bien y gracias por la ayuda.
Esta rutina creo hace lo que necesitas.
Previamente en algún lugar debieras colocar el nbre de las hojas que coincidirán con el criterio o código de producto. En mi ejemplo imaginé que será a partir de AA1, AB1 (fila 27 hasta la 35)
Entrá al Editor, insertá un módulo y copiá allí esta rutina.
Pruébala y si se ajusta lo que necesitas, no olvides regresar y finalizar la consulta.
Sub Copia_x_Criterio()
' Macro desarrollada el 17/06/2009 por Elsamatilde
'
    Range("A1").Select
    col = 27   '1ra celda con códigos empieza en AA1
    While col < 35     'los criterios van hasta la col 35
    crite1 = Cells(1, col).Value
    Selection.AutoFilter Field:=1, Criteria1:=crite1
    filfin = ActiveSheet.Range("A65536").End(xlUp).Row
    finrgo = Sheets(crite1).Range("A65536").End(xlUp).Row + 1
    If filfin >= 2 Then    'es decir que haya valores a copiar
    Rows("2:" & filfin).Select
    Selection.Copy Destination:=Sheets(crite1).Cells(finrgo, 1)
    Selection.Delete
    End If
    col = col + 1  'para pasar al 2do criterio
    Wend
    Selection. AutoFilter
End Sub
Sdos
Elsa
PD) Todo sobre macros desde aquí:
La macro va de maravilla, es lo que necesitaba, gracias por la respuesta.
Lo que más me gusta es la forma de aclarar las ordenes en la macro, de esta manera aprendemos un poco de lo mucho que enseñáis.
Muchas gracias y saludos cordiales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas