Abrir libros desde otro

18/06/2005 - 08:55 por Javi | Informe spam
Hola

Tengo un libro que me abre otros, quiero pasar el nombre de los libros
que se van abriendo a celdas de este primer libro (para controlar cuáles
están abiertos) y no sé cómo hacerlo.

Por otro lado ¿cómo puedo comprobar con código que un libro determinado
está abierto o no?

Muchas gracias

Javi

Preguntas similare

Leer las respuestas

#1 KL
18/06/2005 - 10:33 | Informe spam
Hola Javi,

Tengo un libro que me abre otros, quiero pasar el nombre de los libros que
se van abriendo a celdas de este primer libro (para controlar cuáles están
abiertos) y no sé cómo hacerlo.



Como no expones el codigo por medio del cual abres los libros te pongo un
ejemplo generico (cambia los nombres por los reales):

Sub test()
Set MiLibro = _
Workbooks.Open("C:\MiCarpeta\Prueba.xls")
Workbooks("Principal.xls").ActiveSheet.Range("A1") _
= MiLibro.Name
End Sub


Por otro lado ¿cómo puedo comprobar con código que un libro determinado
está abierto o no?



Prueba esto:

Sub test()
Dim x As Workbook, LibroAbierto As Boolean
On Error Resume Next
Set x = Workbooks("Prueba.xls")
On Error GoTo 0
LibroAbierto = (Not x Is Nothing)
MsgBox LibroAbierto
End Sub

tambien si quieres puedes crear una funcion:

Function LibroAbierto(NombreLibro As String) As Boolean
Dim x As Workbook
On Error Resume Next
Set x = Workbooks(NombreLibro)
On Error GoTo 0
LibroAbierto = (Not x Is Nothing)
End Function

y probarla de esta manera:

Sub test()
MsgBox LibroAbierto("Prueba.xls")
End Sub


Saludos,
KL
Respuesta Responder a este mensaje
#2 KL
18/06/2005 - 11:06 | Informe spam
...solo una puntualizacion: en el primer codigo no es necesario referirse al
libro, donde se graban los nombres de los que se van abriendo, por su
nombre, basta con ThisWorkbook:

Sub test()
Set MiLibro = _
Workbooks.Open("C:\MiCarpeta\Prueba.xls")
ThisWorkbook.ActiveSheet.Range("A1") _
= MiLibro.Name
End Sub

y tambien podrias concretizar a que hoja se tienen que grabar los datos en
vez de Activesheet, algo asi:

Sub test()
Set MiLibro = _
Workbooks.Open("C:\MiCarpeta\Prueba.xls")
ThisWorkbook.Sheets("Hoja1").Range("A1") _
= MiLibro.Name
End Sub

Saludos,
KL


"KL" wrote in message
news:OvIZrB%
Hola Javi,

Tengo un libro que me abre otros, quiero pasar el nombre de los libros
que se van abriendo a celdas de este primer libro (para controlar cuáles
están abiertos) y no sé cómo hacerlo.



Como no expones el codigo por medio del cual abres los libros te pongo un
ejemplo generico (cambia los nombres por los reales):

Sub test()
Set MiLibro = _
Workbooks.Open("C:\MiCarpeta\Prueba.xls")
Workbooks("Principal.xls").ActiveSheet.Range("A1") _
= MiLibro.Name
End Sub


Por otro lado ¿cómo puedo comprobar con código que un libro determinado
está abierto o no?



Prueba esto:

Sub test()
Dim x As Workbook, LibroAbierto As Boolean
On Error Resume Next
Set x = Workbooks("Prueba.xls")
On Error GoTo 0
LibroAbierto = (Not x Is Nothing)
MsgBox LibroAbierto
End Sub

tambien si quieres puedes crear una funcion:

Function LibroAbierto(NombreLibro As String) As Boolean
Dim x As Workbook
On Error Resume Next
Set x = Workbooks(NombreLibro)
On Error GoTo 0
LibroAbierto = (Not x Is Nothing)
End Function

y probarla de esta manera:

Sub test()
MsgBox LibroAbierto("Prueba.xls")
End Sub


Saludos,
KL

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