Recuperar información de archivo cerrado

Saludos cordiales.

En la celda "A1" de la "hoja1" del archivo de nombre "Origen", tengo un determinado valor. Es decir este valor corresponde a un numero de factura.

En otro archivo de nombre "Facturas" están grabados los datos de las facturas en la hoja de nombre "BD" . Lo datos están grabados de la siguiente manera:

      A                      B               C                D                       E

1 No.factura Detalle Cant Valor U. Valor Total

2 125 Clavos 2" 12 1.00 12

3 125 Pernos 3" 10 1.00 10

4 250 Clavos 2" 15 1.00 15

Las letras A, B , C, D, E corresponde a las columnas. Los Numeros 1, 2, 3, 4 corresponde a las filas

La pregunta es la siguiente: Como hacer que al colocar el valor 125 (numero de factura) en la celda "A1" de la "hoja1" del archivo "Origen" se copien los valores que corresponden a esta factura del archivo de nombre "Facturas" que se encuentra cerrado, los pegue luego a partir de la celda "A1"en la "hoja1" en el archivo Origen del cual hice la consulta.

Además que el libro "Facturas" no se quede abierto sino cerrado.

Por favor si me pueden ayudar con una macro para el excel 2013

1 respuesta

Respuesta
1

Lo puedes hacer con fórmulas.

Abre tu libro "origen", también abre tu libro "facturas"

Ahora en tu libro "origen"

Pon la siguiente fórmula en la celda B1

=BUSCARV($A$1,[facturas.xlsx]Hoja1!$A:$D,2,0)

En la celda C1

=BUSCARV($A$1,[facturas.xlsx]Hoja1!$A:$D,3,0)

Y en D1

=BUSCARV($A$1,[facturas.xlsx]Hoja1!$A:$D,4,0)

Guarda tu libro "origen", cierra el libro "facturas"

Cambia el número de factura en la celda "A1" de tu libro "origen", en automático los datos se actualizan.


Si quieres la macro, pon la siguiente macro en los eventos de worksheet

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        activa = ActiveCell.Address
        ruta = "C:\Documents and Settings\DAMOR\Mis documentos\docs\Soporte expertos\"
        Range("B1") = "=VLOOKUP(R1C1,'" & ruta & "[facturas.xlsx]Hoja1'!C1:C4,2,0)"
        Range("C1") = "=VLOOKUP(R1C1,'" & ruta & "[facturas.xlsx]Hoja1'!C1:C4,3,0)"
        Range("D1") = "=VLOOKUP(R1C1,'" & ruta & "[facturas.xlsx]Hoja1'!C1:C4,4,0)"
        Range("B1:D1").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        Range(activa).Select
    End If
End Sub

Cambia en la macro la ruta, por la ruta en donde tienes tu archivo de "facturas".


Sigue las Instrucciones para poner la macro en worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Saludos. Dante Amor

Recuerda valorar la respuesta.

Buenas tardes.

Muchas gracias Dante Amor por la prontitud de atender y por la excelente respuesta. Pero he planteado mal mi requerimiento. Por favor si me pueden ayudar en este mismo requerimiento. Explicare mejor. Cuando coloco el valor (numero de factura) en la celda A1, que se pegen todos los datos de la factura respectiva (del archivo cerrado ·"facturas")  que si fuese el caso todas las filas respectiva en referencia a la celda A1. Por ejemplo si escribo el valor 125 (numero de factura) en la celdaA1, que se pege todo lo que corresponde a esta factura, asi:

125 Clavos 2" 12 1.00 12

125 Pernos 3" 10 1.00 10

Quiere decir que en la factura No. 125 se ha vendido:

Detalle/Cant/Valor U./Valor Total

Clavos/2"/12/1.00/12

25/Pernos/3"/10/1.00/10

Por favor si fuese a traves de un macro estaria tambien muy agradecido

Cordialmente Marcelo

Y que tenga un lindo dia

Valora esta respuesta por la macro que te envié y crea una nueva pregunta con el detalle de lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas