Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel: Mediante VBA como listo los libros abiertos en el menú "Ventana" ...

867 views
Skip to first unread message

Sergio L.

unread,
Jul 27, 2004, 11:37:39 AM7/27/04
to
No se si se entiende, quiero listar los archivos abiertos para que el
usuario elija uno para trabajar y ahí aplicar una rutina.
Alguien me puede ayudar ?
Desde ya muchas gracias por su tiempo.


Héctor Miguel

unread,
Jul 28, 2004, 9:54:08 PM7/28/04
to
hola, Sergio !

> ... quiero listar los archivos abiertos para que el usuario elija uno ... y ... aplicar una rutina.

[creo que lo 'mejor' es...] 'presenta' la lista de los archivos abiertos en un formulario
[solo se requiere que el formulario tenga un control listbox y un commandbutton]

- si te decides por esta 'opcion'... te expongo un ejemplo al final ;)
- otra opcion seria usar un dialogo incorporado... =>Application.Dialogs(xlDialogActivate).Show<=
[tiene el 'inconveniente' de que incluye complementos -addin- y libros cuya ventana esta 'oculta'] :(
[ademas de que una vez efectuada la 'seleccion'... activa el libro seleccionado -toda vez que sea 'posible'-]
- otra posibilidad seria usando macros y reglas de validacion en [alg]una celda ANTES de ejecutar la rutina ;)
si te interesa de esta forma... [es algo mas 'complicadillo' de 'simplificar']... '¿avisas?

saludos,
hector.
¨¨¨¨¨¨¨¨¨¨
suponiendo un formulario con un control listbox y un commandbutton [para 'captar'] la seleccion...
=== en el modulo de codigo del formulario ===
' antes de 'presentarse' el formulario... se 'toman' los libros abiertos '
Private Sub UserForm_Initialize()
Dim Libro As Workbook
For Each Libro In Workbooks
Me.ListBox1.AddItem Libro.Name
Next
End Sub
' => se incluyen los libros [NO addin] con ventana 'oculta' _
si los necesitas NO incluir... cambia 'dentro' del for... a:
' => If Windows(Libro.Name).Visible Then Me.ListBox1.AddItem Libro.Name
Private Sub CommandButton1_Click()
' para 'detectar' si el usuario ya ha efectuado una seleccion...
If Me.ListBox1.ListIndex > -1 Then
' para 'tomar' el nombre del libro seleccionado ... _
cambia el msgbox por alguna variable o lo que necesites ;)
MsgBox "Se ha seleccionado: " & Me.ListBox1.List(Me.ListBox1.ListIndex)
End If
End Sub

0 new messages