Macro que busque el valor de una celda y copie algunas celdas en otra hoja

Los expertos. Tengo una tabla de excel donde cada línea es un conjunto de datos sobre un cliente. Necesito una macro que busque el valor de la celda B2 de la hoja Resumen en cada línea de la hoja All MIF (2000 líneas) y copie los valores de algunas celdas como A, B, F, L, X a partir de la celda A10 de la hoja resumen y que incluya la cabecera.

2 Respuestas

Respuesta
1

Disculpar.

Respuesta
1

Tu explicación es muy vaga y dejas que supongamos que lo quieres y en ocasiones lo que suponemos esta equivocado así que lo más correcto es subir una imagen de la estructura de tus datos, tus datos pueden ser ficticions lo que importa es la estructura, dicho esto entro al terreno de las suposiciones y te muestro como creo que tienes estructurado tus datos en la hoja2, esta macro trabaja con autofiltros en vez de ciclos do while, for each o for I, es más eficiente así ya que la macro hace una copia masiva de datos a la hoja resumen después de filtrar el valor de la celda B2 de la hoja resumen

y este es el resultado, la macro de toda la información filtrada solo copia determinadas columnas que son las que tu mencionaste

y esta es la macro

Sub copiar_datos()
campo = Sheets("resumen").Range("b2")
With Hoja2.Range("a1").CurrentRegion
    . AutoFilter 2, campo
    . Columns(1). Copy: Sheets("resumen"). Range("a10"). PasteSpecial
    . Columns(2). Copy: Sheets("resumen"). Range("b10"). PasteSpecial
    . Columns(6). Copy: Sheets("resumen"). Range("c10"). PasteSpecial
    . Columns(12). Copy: Sheets("resumen"). Range("d10"). PasteSpecial
    . Columns(24). Copy: Sheets("resumen"). Range("e10"). PasteSpecial
    . AutoFilter
End With
End Sub

Hola James Bond, discúlpame por no haberme sabido explicar, lo que has puesto es lo que necesito, sólo un par de detalles más si es posible, ¿cómo podría hacer para que lo que me copiara fuera eso mismo pero los 10 peores resultados de una de las columnas o los 10 mejores resultados y que me borre los datos que pudiera haber en la hoja resumen al empezar a copiar? En el ejemplo pongo que sea Antonio y los 10 peores resultados de ventas. Muchísimas gracias.

¿Especifica los 10 peores o los 10 mejores resultados de que columna o columnas?

Y por cierto te falta más información en las columnas después de ventas no muestras nada.

Serían los 10 peores. En el ejemplo que he puesto he filtrado por Antonio y los 10 valores más bajos (negativos)

Son sólo ejemplos, los números de las columnas ya los pondría yo, sin problemas. Gracias.

Esta macro hace lo mismo que la anterior más un sorteo ascendente por la columna ventas, deja los diez primero lugares con los números más bajos y borra el resto

Y esta es la macro, ojo en esta macro en la hoja2 la columna ventas es la columna 13 y en la hoja resumen esa columna fue colocada al final para facilitar que la macro la ordene

Sub copiar_datos()
campo = Sheets("resumen").Range("b2")
With Sheets("hoja2").Range("a1").CurrentRegion
    . AutoFilter 2, campo
    . Columns(1). Copy: Sheets("resumen"). Range("a10"). PasteSpecial
    . Columns(2). Copy: Sheets("resumen"). Range("b10"). PasteSpecial
    . Columns(6). Copy: Sheets("resumen"). Range("c10"). PasteSpecial
    . Columns(12). Copy: Sheets("resumen"). Range("d10"). PasteSpecial
    . Columns(13). Copy: Sheets("resumen"). Range("e10"). PasteSpecial
    . AutoFilter
End With
Sheets("resumen").Select
Set datos = Range("a10").CurrentRegion
With datos
    col = .Columns.Count: filas = .Rows.Count
    .Sort key1:=Range(.Columns(col).Address), order1:=xlAscending, Header:=True
    .Rows(11).Resize(filas).Clear
End With
Set datos = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas