macro que utilize dos libros

29/11/2005 - 16:03 por .·:m·a·r·l·a:·. | Informe spam
Hola a todos ::

quiero hacer una macro que me lea datos de un libro y los guarde en otro

la macro estara escrita en el segunto libro y este siempre es el mismo
(llamemosle A)

asi abro un nuevo libro (B por ejemplo) y ejecuto la macro que tiene que
leer determinadas celdas de cada hoja del libro B y guardarlas en el A.
Acabado esto, cierro el libro y abro otro diferente (C), al ejecutar la
macro devera leer de C y escribir en A

y asi con un monton de libros

se que tengo que utilizar las funciones activeworkbook y Workbooks(index),
pero lo que no se es como localizar el indice de los libros cuando estos
pueden tener cualquier nombre (excepto el A que siempre es el mismo)

alguna idea please ??

gracias por adelantado

Preguntas similare

Leer las respuestas

#1 luis
29/11/2005 - 18:31 | Informe spam
Aqui te dejo algo para empezar. Tendras que completarlo, falta cerrar el
fichero de entrada, abrir el nuevo fichero copiar los nuevos datos... y
salvar los datos.


Sub leerlibro()

Dim LibroEntrada As Workbook
Dim LibroSalida As Workbook
Dim HojaEntrada As Worksheet
Dim HojaSalida As Worksheet
Dim RangoEntrada As Range
Dim RangoSalida As Range

Set LibroEntrada = Workbooks.Open("e:\excel\Tulibro.xls")
Set HojaEntrada = LibroEntrada.Worksheets("TuHoja")
Set RangoEntrada = HojaEntrada.Range("A1:b2")

Set LibroSalida = ThisWorkbook
Set HojaSalida = LibroSalida.Worksheets("Hoja1")
Set RangoSalida = HojaSalida.Range("A1")
RangoEntrada.Copy Destination:=RangoSalida


End Sub

.


".·:m·a·r·l·a:·." escribió en el mensaje
news:
Hola a todos ::

quiero hacer una macro que me lea datos de un libro y los guarde en otro

la macro estara escrita en el segunto libro y este siempre es el mismo
(llamemosle A)

asi abro un nuevo libro (B por ejemplo) y ejecuto la macro que tiene que
leer determinadas celdas de cada hoja del libro B y guardarlas en el A.
Acabado esto, cierro el libro y abro otro diferente (C), al ejecutar la
macro devera leer de C y escribir en A

y asi con un monton de libros

se que tengo que utilizar las funciones activeworkbook y Workbooks(index),
pero lo que no se es como localizar el indice de los libros cuando estos
pueden tener cualquier nombre (excepto el A que siempre es el mismo)

alguna idea please ??

gracias por adelantado


Respuesta Responder a este mensaje
#2 KL
29/11/2005 - 22:28 | Informe spam
Hola,

Mira a ver si te vale algo asi (se puede seleccionar multiples archivos para
abrir):

Sub test()
Dim Archivos, rng As Range, Archivo As Workbook
With Workbooks("A.xls").Worksheets(1)
Set rng = .Cells(.Rows.Count, "A").End(xlUp)
End With
Archivos = Application.GetOpenFilename( _
FileFilter:="Archivos Microsoft Excel (*.xls), *.xls", _
MultiSelect:=True)
On Error GoTo errHandler
Application.ScreenUpdating = False
For i = LBound(Archivos) To UBound(Archivos)
Set rng = rng.Offset(1, 0)
Set Archivo = Workbooks.Open(Archivos(i))
With Archivo
.Worksheets(1).Range("A1").Copy rng
.Close False
End With
Next i
Application.ScreenUpdating = True
errHandler:
End Sub

Saludos,
KL


".·:m·a·r·l·a:·." wrote in message
news:
Hola a todos ::

quiero hacer una macro que me lea datos de un libro y los guarde en otro

la macro estara escrita en el segunto libro y este siempre es el mismo
(llamemosle A)

asi abro un nuevo libro (B por ejemplo) y ejecuto la macro que tiene que
leer determinadas celdas de cada hoja del libro B y guardarlas en el A.
Acabado esto, cierro el libro y abro otro diferente (C), al ejecutar la
macro devera leer de C y escribir en A

y asi con un monton de libros

se que tengo que utilizar las funciones activeworkbook y Workbooks(index),
pero lo que no se es como localizar el indice de los libros cuando estos
pueden tener cualquier nombre (excepto el A que siempre es el mismo)

alguna idea please ??

gracias por adelantado


Respuesta Responder a este mensaje
#3 .·:m·a·r·l·a:·.
30/11/2005 - 09:43 | Informe spam
gracias, si que me ha servido, lo adapte un poco para mi proposito y
perfecto

por cierto, a igual manera que igualas Archivo al nuevo workbook abierto,
como puedo igualar una variable al workbook activo ??




"KL" wrote in message
news:
Hola,

Mira a ver si te vale algo asi (se puede seleccionar multiples archivos


para
abrir):

Sub test()
Dim Archivos, rng As Range, Archivo As Workbook
With Workbooks("A.xls").Worksheets(1)
Set rng = .Cells(.Rows.Count, "A").End(xlUp)
End With
Archivos = Application.GetOpenFilename( _
FileFilter:="Archivos Microsoft Excel (*.xls), *.xls", _
MultiSelect:=True)
On Error GoTo errHandler
Application.ScreenUpdating = False
For i = LBound(Archivos) To UBound(Archivos)
Set rng = rng.Offset(1, 0)
Set Archivo = Workbooks.Open(Archivos(i))
With Archivo
.Worksheets(1).Range("A1").Copy rng
.Close False
End With
Next i
Application.ScreenUpdating = True
errHandler:
End Sub

Saludos,
KL


".·:m·a·r·l·a:·." wrote in message
news:
> Hola a todos ::
>
> quiero hacer una macro que me lea datos de un libro y los guarde en otro
>
> la macro estara escrita en el segunto libro y este siempre es el mismo
> (llamemosle A)
>
> asi abro un nuevo libro (B por ejemplo) y ejecuto la macro que tiene que
> leer determinadas celdas de cada hoja del libro B y guardarlas en el A.
> Acabado esto, cierro el libro y abro otro diferente (C), al ejecutar la
> macro devera leer de C y escribir en A
>
> y asi con un monton de libros
>
> se que tengo que utilizar las funciones activeworkbook y


Workbooks(index),
> pero lo que no se es como localizar el indice de los libros cuando estos
> pueden tener cualquier nombre (excepto el A que siempre es el mismo)
>
> alguna idea please ??
>
> gracias por adelantado
>
>


Respuesta Responder a este mensaje
#4 KL
30/11/2005 - 15:25 | Informe spam
Dim LibroActivo As Workbook
Set LibroActivo = ActiveWorkbook

Saludos,
KL


".·:m·a·r·l·a:·." wrote in message
news:
gracias, si que me ha servido, lo adapte un poco para mi proposito y
perfecto

por cierto, a igual manera que igualas Archivo al nuevo workbook abierto,
como puedo igualar una variable al workbook activo ??




"KL" wrote in message
news:
Hola,

Mira a ver si te vale algo asi (se puede seleccionar multiples archivos


para
abrir):

Sub test()
Dim Archivos, rng As Range, Archivo As Workbook
With Workbooks("A.xls").Worksheets(1)
Set rng = .Cells(.Rows.Count, "A").End(xlUp)
End With
Archivos = Application.GetOpenFilename( _
FileFilter:="Archivos Microsoft Excel (*.xls), *.xls", _
MultiSelect:=True)
On Error GoTo errHandler
Application.ScreenUpdating = False
For i = LBound(Archivos) To UBound(Archivos)
Set rng = rng.Offset(1, 0)
Set Archivo = Workbooks.Open(Archivos(i))
With Archivo
.Worksheets(1).Range("A1").Copy rng
.Close False
End With
Next i
Application.ScreenUpdating = True
errHandler:
End Sub

Saludos,
KL


".·:m·a·r·l·a:·." wrote in message
news:
> Hola a todos ::
>
> quiero hacer una macro que me lea datos de un libro y los guarde en
> otro
>
> la macro estara escrita en el segunto libro y este siempre es el mismo
> (llamemosle A)
>
> asi abro un nuevo libro (B por ejemplo) y ejecuto la macro que tiene
> que
> leer determinadas celdas de cada hoja del libro B y guardarlas en el A.
> Acabado esto, cierro el libro y abro otro diferente (C), al ejecutar la
> macro devera leer de C y escribir en A
>
> y asi con un monton de libros
>
> se que tengo que utilizar las funciones activeworkbook y


Workbooks(index),
> pero lo que no se es como localizar el indice de los libros cuando
> estos
> pueden tener cualquier nombre (excepto el A que siempre es el mismo)
>
> alguna idea please ??
>
> gracias por adelantado
>
>






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida