Listar los archivos de Excel abiertos

jo2214 -  
 xpulse -
Hola,
¿alguien sabría cómo en VBA listar todos los archivos de Excel abiertos (incluso los que aún no se han guardado)?

Estoy probando este código que funciona bien con la instancia de Excel en curso (la de thisworkbook)
pero no veo los archivos abiertos de otras instancias de Excel. (en la misma sesión de Windows)

For Each Libro In Application.Workbooks
FechaLibro = Libro.BuiltinDocumentProperties("Creation Date")
debug.print Libro.Name, FechaLibro
Next

(Excel 2000 y posteriores)
gracias por su ayuda
Configuración: Windows XP Firefox 1.5.0.1

5 respuestas

RailBird
 
Sub Test_Class_Ouvert()

For i = 1 To Workbooks.Count

ActiveSheet.Cells(i, 1) = Workbooks(i).Name

Next i

End Sub

Esto permite recuperar el nombre de los libros abiertos y copiarlos en la celda, sin embargo, no muestra los libros "no guardados", no sé si es necesario agregar una condición.
10
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
Hola,

esta función devuelve un booleano que indica si el libro está abierto (true)

<code>Function FichOuvert(F As String) As Boolean 'Según Didier_mdf Dim Wk As Workbook On Error Resume Next Set Wk = Workbooks(F) On Error GoTo 0 FichOuvert = Not Wk Is Nothing End Function
</code>
--
Michel
0
jo2214
 
Gracias,
pero el objetivo es seleccionar el último libro abierto de todas las instancias de Excel:
parece que cada instancia solo detecta sus propios libros
y el código a continuación funciona muy bien para eso
 For Each Libro In Application.Workbooks FechaLibro = Libro.BuiltinDocumentProperties("Creation Date") debug.print Libro.Name, FechaLibro Next 

quizás exista un objeto del estilo "excel.applications" bajo otro nombre?
0
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
Sin embargo, tú preguntabas:

..."¿alguien sabría cómo en VBA listar todos los archivos de Excel abiertos?"...

Buen fin de semana
--
Michel
0
xpulse
 
Hola,

hago un gran Up de más de 6 meses porque estoy encontrando el mismo problema:

recorrer todos los libros abiertos de todas las aplicaciones de Excel abiertas en el PC

en esencia algo como:

Dim Exapp As Excel.Application
Dim WB As Workbook

For Each Exapp In (Excel.applicationS)

For Each WB In Workbooks
If WB.Name = NomFichier Then
AperturaFichero = True
End If
Next

Next

¿es posible de esta manera y si es así cuál sería la escritura exacta o se debería abordar el problema de manera diferente?
0