Tabla con macros

Hola a todos!
Tengo un problema, tengo una base de datos en donde quiero hacer lo siguiente, buscar en la celda q2, si es = Improcedente, si es así, que copie toda la fila en otra hoja de calculo llamada improcedentes, quiero que haga esto como con 100 filas, es decir una vez pegado en la hoja improcedentes, que regrese a la base de datos y busque en la siguiente fila si es improcedente, si es, que copie y pegue en la hoja de improcedentes, pero en la siguiente fila basia, y así sucesivamente...
Muchas gracias!

1 respuesta

Respuesta
1
Utiliza el siguiente macro :
Sub UbicarImprocedentes()
    Application.ScreenUpdating = False
    miHoja = ActiveSheet.Name
    Range("Q2").Select
    Do While ActiveCell <> ""
        If LCase(ActiveCell) = "improcedente" Then
            Rows(ActiveCell.Row).Copy
            Sheets("Improcedentes").Select
            Range("A65000").End(xlUp).Offset(1, 0).Select
            ActiveSheet.Paste
            Sheets(miHoja).Select
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    Application.CutCopyMode = False
End Sub
Coloca la rutina que te estoy enviando en un módulo de Visual Basic.
¿Cómo?
     * Abre el Editor de Visual Basic Alt-F11
     * En el Menú de Opciones, haz click en el Menu Insertar y luego selecciona Módulo.
     *En el módulo que aparece, copia el código desde la línea "Sub UbicarImprocedentes()" hasta la línea "End Sub"
    * Cierra el Editor de Visual Basic
Ahora ejecuta la macro así :
     * Alt-F8 - selecciona UbicarImprocedentes - Ejecutar
Muchas Muchas gracias! ¿Pregunta al referirte a mi hoja te refieres a donde tengo la base de datos?, esa se llama concentrado, ¿cómo tendría que ponerle?
Saludos
Hola de nuevo, creo que no dije algo bien, la base de datos es un archivo de excel completamente diferente al de improcedentes, lo que quiero es que al abrir yo improcedentes, ahí este la macro y jale la información de la base de datos para que la pegue en improcedentes.
Saludos
Esta rutina debes colocarla en el libro base de datos.
Al correr la macro ( Alt-F8 - selecciona UbicarImprocedentes - Ejecutar ) se abrirá el libro llamado Improcedentes.xls y se colocarán en él, los datos improcedentes. Luego se grabará el Libro y se cerrará.
Sub UbicarImprocedentes()
    Application.ScreenUpdating = False
    miLibro = ActiveWorkbook.Name
    Workbooks.Open Filename:="Improcedentes.xls"
    Windows(miLibro).Activate
    Range("Q2").Select
    Do While ActiveCell <> ""
        If LCase(ActiveCell) = "improcedente" Then
            Rows(ActiveCell.Row).Copy
            Windows("Improcedentes.xls").Activate
            Range("A65000").End(xlUp).Offset(1, 0).Select
            ActiveSheet.Paste
            Windows(miLibro).Activate
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    Application.CutCopyMode = False
    Windows("Improcedentes.xls").Activate
    ActiveWorkbook.Close savechanges:=True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas