Copiar registros en una hoja a partir de otra hoja (BBDD) si cumple una condicion en una columna

Tengo una base de datos en una hoja de Excel con registros desde la columna “A” hasta la “X” y desde la fila 1 hasta la n…,

En el mismo libro tengo dos hojas adicionales

En la hoja con el nombre “GRANDE”, necesito copiar los datos de la Base de datos únicamente las filas que en la columna “P” sea igual o mayor que 90

Y en la Hoja con el Nombre “MEDIANO” necesito copiar los datos de la Base de datos únicamente las filas que en la columna “P” este entre >=45 y <90

CONDICIONES

  • Tanto en la hoja “GRANDE”, como en la hoja “MEDIANO” los registros se copiaran a partir de la fila 4 por cuanto en las filas 1-3 corresponden a encabezados
  • La base de datos debe mantener los registros originales.

1 respuesta

Respuesta
1

Te anexo la macro para copiar en las hojas grande y mediano

Sub CopiarTamaños()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = ActiveSheet
    Set h2 = Sheets("mediano")
    Set h3 = Sheets("grande")
    Rows("1:1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    [A1].AutoFilter
    Columns("A:X").AutoFilter
    u = Range("P" & Rows.Count).End(xlUp).Row
    '
    'copia mediano
    h1.Range("A1:X" & u).AutoFilter Field:=16, Criteria1:=">=45", _
        Operator:=xlAnd, Criteria2:="<90"
    u2 = h2.Range("P" & Rows.Count).End(xlUp).Row
    If u2 < 4 Then u2 = 4
    h2.Range("A4:X" & u2).ClearContents
    h1.Range("A2:X" & u).Copy
    h2.Range("A4").PasteSpecial Paste:=xlPasteValues
    '
    'copia grande
    h1.Range("A1:X" & u).AutoFilter Field:=16, Criteria1:=">90"
    u3 = h3.Range("P" & Rows.Count).End(xlUp).Row
    If u3 < 4 Then u3 = 4
    h3.Range("A4:X" & u3).ClearContents
    h1.Range("A2:X" & u).Copy
    h3.Range("A4").PasteSpecial Paste:=xlPasteValues
    h1.Rows("1:1").Delete
    Application.ScreenUpdating = True
    MsgBox "Terminado"
End Sub

Saludos.Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas