Macro pasar datos filtrados a otra hoja

Dante:

La segunda pregunta (Excel 2010), es la siguiente: En la Hoja CARGUE! Se filtran datos que despues de imprimirlos se borran (solo los datos filtrados). Cuales serían, por favor, las correciones de la siguiente macro, para que cuando se impriman estos datos, se pasen sólo algunos datos de la Hoja CARGUE! A la Hoja Copia Seguridad!.

El siguiente intento de adaptación de una macro suya la encontré en el historial de TodoExpertos (Buscar un valor y si existe cortar una fila y pegarlo en otra hoja :

(Antes de imprimir hace un pase)

Sub pase_Conductor_Cargue()

Set ho2 = Sheets("CARGUE")
Set ho3 = Sheets("Copia Seguridad")

For i = 8 To ho2.Range("A" & Rows.Count).End(xlUp).Row
    resu1 = Application.VLookup(ho2.Cells(i, "$B"), ho3.Range("A:B"), 1, False)
If IsError(resu) = True Then
     'No lo encontró
  Else
    ho3.Cells(i, "O") = ho2.Range("M3")
    ho3.Cells(i, "P") = ho2.Range("Q3") 
    ho3.Cells(i, "Q") = ho2.Range("B2")
    ho3.Cells(i, "R") = ho2.Range("B3")
End If

Next

End Sub

Pero, ocurren estas situaciones:

1. Efectivamente se pasan solo algunos datos, antes de imprimir, a la Hoja Copia Seguridad!, pero pasa mas del numero de filas filtradas en la Hoja Cargue!. Por ejemplo, si se filtra una sola fila de datos en Cargue!, se pasan cinco filas a Copia Seguridad!

2. Se requiere que cuando encuentre el valor en la Hoja Copia Seguridad!, pase los datos en la fila donde la encontró y no los ponga en orden desde la fila 8.

Respuesta
1

H o l a:

¿La hoja tiene un filtro en los datos antes de ejecutar la macro?

O a qué te refieres con :

"

En la Hoja CARGUE! Se filtran datos que despues de imprimirlos se borran (solo los datos filtrados)

"


En tu macro tienes este detalle, estás almacenando el resultado de la búsqueda en la variable:

resu1 = Application.VLookup(ho2.Cells(i, "$B"), ho3.Range("A:B"), 1, False)

Pero en la verificación del error utilizas otra variable (te falta el uno 1):

If IsError(resu) = True Then


Realiza la corrección de la variable y prueba nuevamente, si todavía tienes problemas, explícame con ejemplos, con datos reales, qué es lo que quieres realizar y qué resultado esperas.


Si te es más fácil explicarme los ejemplos con tu libro, entonces envíame tu archivo con tu macro a mi correo y me explicas con colores lo que necesitas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Fernando Orrego” y el título de esta pregunta.

H o l a:

Te anexo la macro actualizada, primero deberás filtrar los números que quieres actualizar.

Sub pase_Conductor_Cargue()
'Por.Dante Amor
    Set h1 = Sheets("CARGUE")
    Set h2 = Sheets("Copia Seguridad")
    '
    For i = 8 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Rows(i).Hidden = False Then
            Set b = h2.Columns("A").Find(h1.Cells(i, "B"), lookat:=xlWhole)
            If Not b Is Nothing Then
                h2.Cells(b.Row, "O") = h1.Range("M3")
                h2.Cells(b.Row, "P") = h1.Range("Q3")
                h2.Cells(b.Row, "Q") = h1.Range("B2")
                h2.Cells(b.Row, "R") = h1.Range("B3")
            End If
        End If
    Next
    MsgBox "Fin"
End Sub

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas