¿ Como puedo copiar una fila elegida con el autofiltro de un libro a otro libro diferente excel 2010?

En una carpeta tengo dos libros excel 2010 y necesito con un autofiltro elegir una fila específicas en varias hojas para poderlas copiar a otro libro con características similares, ambos libros los cuales tienen macros que protegen ciertas columnas que poseen listas desplegables. He intentado hacerlo con la tecla control y el mouse seleccionando el libro fuentey agrupando las hojas, para copiarlo al libro destino pero el método no funciona ya que me aparece una leyenda de protección de las hojas en cuestión. Espero vuestra respuesta al respecto

1 respuesta

Respuesta
1

Según entiendo tienes varias hojas en el libro1, ¿correcto?

Quieres filtrar todas las hojas del libro1 con ciertos criterios, ¿correcto?

Quieres agrupar el resultado de los filtros y copiarlo al libro2, ¿correcto?

¿Lo qué no entiendo es qué hojas son las que están bloqueadas? ¿Tienen password las hojas?

En el libro2, ¿quieres pegar en una hoja específica o en una hoja nueva?


Para que el proceso se haga en automático, se puede hacer una macro que filtre, copie, desproteja la hoja, pegue y vuelva a proteger la hoja.

Puedes enviarme tus 2 libros, en el libro1 pon ejemplos con datos, me explicas cómo filtras y en el libro2 tienes que poner el resultado que esperas.

También dime el password y qué hoja es la que está protegida.


Te anexo la macro para copiar las filas

Sub CopiarDni()
'Por.Dante Amor
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set l2 = Workbooks("EXAMEN ANUAL V 23")
    dni = Application.InputBox("Escribe el DNI", "COPIAR DNI", ActiveCell.Value)
    If dni <> falso Then
        Set b = Range("A:A").Find(dni, lookat:=xlWhole)
        If Not b Is Nothing Then
            f = b.Row
            For Each h In l1.Sheets
                Select Case h.Name
                    Case "DB", "Hoja1", "Hoja2"
                    Case Else
                        nom = h.Name
                        l2.Sheets(h.Name).Unprotect "*****"
                        l1.Sheets(h.Name).Rows(f).Copy l2.Sheets(h.Name).Rows(f)
                        l2.Sheets(h.Name).Protect "*****"
                End Select
            Next
        Else
            MsgBox "El DNI no existe", vbExclamation, "DNI INVÁLIDO"
        End If
    End If
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    MsgBox "Copia DNI terminada", vbInformation
End Sub

Nota: Por cuestiones de seguridad no incluí el password, deberás cambiarlo por el verdadero.

Saludos. Dante Amor

No olvides valorar la respuesta.

Hola Dante:

Realmente no tuve tiempo de responderte.

Tengo que decirte que sos un GENIO, me gustó tu excelente y perfecto aporte.

Si no te contesté antes es porque el código fuente en VBA se colgaba e indicaba el error

"subíndice fuera del intervalo" lo pude descubrir con tus observaciones sobre errores de la hoja de LABORATORIO, y los nombres del líbro sobre los cuales, foros y páginas hacían referencia.

El error del subíndice es porque en al código fuente faltó agregar el formato de la hoja en este caso después de pruebas y errores lo logré con tu código fuente. al poner en el renglón correspondiente:
Set l2 = Workbooks("EXAMENANUALV23.xlsm")

Ahora descubierto el error puedo trabajar y avanzar.

Muchas gracias por tu inestimable ayuda.

Atte.

Federico

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas