Como traer los datos de otro libro

Que tal buen día amigos expertos quisiera ver si me pueden ayudar con una macro que me diseño el buen Dante Amor, lo que pasa es que voy a mover unas hojas que contienen base de datos con formulas a otro libro esto para que no se haga lento mi archivo o modulo de captura de información y es la siguiente macro la uso ahorita pero, con tanta formula de las bases se a lenta el archivo y quiero cambiarla de referencia al otro libro nuevo para que no siga pasando eso.

Sub TraerDatos3()
'Por.Dante Amor
Set h1 = Sheets("Formato de Captura Calidad IRP")
Set h2 = Sheets("Respaldo General")
h1.Unprotect "romito"
'
i = 10
Do While Cells(i, "B") <> "" Or Cells(i + 1, "B") <> ""
i = i + 2
Loop
'
Set b = h2.Columns("A").Find(h1.[T3], LookAt:=xlWhole, LookIn:=xlValues)
If Not b Is Nothing Then
h1.Cells(i, "B") = h2.Cells(b.Row, "H") 'Orden de compra
h1.Cells(i, "C") = h2.Cells(b.Row, "E") 'Cons
h1.Cells(i, "D") = h2.Cells(b.Row, "F") 'Pda
h1.Cells(i, "E") = h2.Cells(b.Row, "G") 'Ent
h1.Cells(i + 1, "I") = h2.Cells(b.Row, "J") 'cantidad
h1.Cells(i + 1, "L") = h2.Cells(b.Row, "K") 'Fecha de Entrega
h1.Cells(i + 1, "N") = h2.Cells(b.Row, "L") 'Precio Unitario
h1.Cells(i, "P") = h2.Cells(b.Row, "M") 'No Factura
h1.Cells(i, "Q") = h2.Cells(b.Row, "N") 'No Lote
h1.Cells(i, "A") = h2.Cells(b.Row, "O") 'Cons de Vale
h1.Cells(i + 1, "J") = h2.Cells(b.Row, "P") 'Unidad
h1.Cells(i, "R") = h2.Cells(b.Row, "V") 'Retencion de muestra
h1.Cells(i, "T") = h2.Cells(b.Row, "W") 'No Analisis
h1.Cells(i, "V") = h2.Cells(b.Row, "Y") 'Fecha de aprobacion
h1.Cells(i, "W") = h2.Cells(b.Row, "Z") 'Fecha IRP
h1.Cells(i, "X") = h2.Cells(b.Row, "AA") 'IRP
h1.Cells(i, "AA") = h2.Cells(b.Row, "AB") 'Comentarios
Else
MsgBox "Número de folio no existe", vbExclamation
End If
h1.Protect "romito"
End Sub

1 Respuesta

Respuesta
1

Si la hoja"Respaldo General" está en el libro2:

Cambia en la macro "libro2.xlsx", por el nombre de tu libro que tiene la hoja "Respaldo General".

Los 2 libros deberán estar abiertos.

Sub TraerDatos3()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Formato de Captura Calidad IRP")
    '
    Set l2 = Workbooks("libro2.xlsx")
    Set h2 = l2.Sheets("Respaldo General")
    h1.Unprotect "romito"
    '
    i = 10
    Do While Cells(i, "B") <> "" Or Cells(i + 1, "B") <> ""
        i = i + 2
    Loop
    '
    Set b = h2.Columns("A").Find(h1.[T3], LookAt:=xlWhole, LookIn:=xlValues)
    If Not b Is Nothing Then
        h1.Cells(i, "B") = h2.Cells(b.Row, "H")     'Orden de compra
        h1.Cells(i, "C") = h2.Cells(b.Row, "E")     'Cons
        h1.Cells(i, "D") = h2.Cells(b.Row, "F")     'Pda
        h1.Cells(i, "E") = h2.Cells(b.Row, "G")     'Ent
        h1.Cells(i + 1, "I") = h2.Cells(b.Row, "J") 'cantidad
        h1.Cells(i + 1, "L") = h2.Cells(b.Row, "K") 'Fecha de Entrega
        h1.Cells(i + 1, "N") = h2.Cells(b.Row, "L") 'Precio Unitario
        h1.Cells(i, "P") = h2.Cells(b.Row, "M")     'No Factura
        h1.Cells(i, "Q") = h2.Cells(b.Row, "N")     'No Lote
        h1.Cells(i, "A") = h2.Cells(b.Row, "O")     'Cons de Vale
        h1.Cells(i + 1, "J") = h2.Cells(b.Row, "P") 'Unidad
        h1.Cells(i, "R") = h2.Cells(b.Row, "V")     'Retencion de muestra
        h1.Cells(i, "T") = h2.Cells(b.Row, "W")     'No Analisis
        h1.Cells(i, "V") = h2.Cells(b.Row, "Y")     'Fecha de aprobacion
        h1.Cells(i, "W") = h2.Cells(b.Row, "Z")     'Fecha IRP
        h1.Cells(i, "X") = h2.Cells(b.Row, "AA")    'IRP
        h1.Cells(i, "AA") = h2.Cells(b.Row, "AB")   'Comentarios
    Else
        MsgBox "Número de folio no existe", vbExclamation
    End If
    h1.Protect "romito"
End Sub

Si tienes algún problema, dime en qué libro tienes la macro, y cuál hoja tienes en ese libro con la macro. Dime cómo se llama el libro2 y cuál hoja tiene.

Saludos. Dante Amor

Si es lo que necesitas.

Podría ser que el segundo libro este cerrado ya que no quisiera que vieran o modifiquen la información que ellos mismo ingresan.

Saludos.

¿Primer dime si la macro funciona si el libro2 está abierto?

Lo que podría hacer la macro es abrir el segundo libro, tomar la información y volver a cerrar el libro.

En efecto la ingrese en le libro 1 para que me aparezca los datos que tengo en el libro 2 pero no me los pone, solo me los  aparece cuando esta abierto el libro 2 que es donde tendría mi base o bases y necesito que esté cerrado como te lo comente.

Otra vez:

¿Dime si la macro funciona si el libro2 está abierto?

Si aparecen pero tienen que estar abiertos los dos y nada más quiero que este abierto el libro 1

Tu petición original no decía que tenía que estar el libro2 cerrado.

La macro funciona, valorar esta respuesta y crea una nueva pregunta con la nueva petición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas