Abrir un archivo desde un ComboBox (corrección de la pregunta)

Buenos días/tardes o noches.

Luis, me equivoque al formular la pregunta, he aquí la pregunta correcta:

Tengo un ComboBox1 en el cual he listado todos los archivos que hay en una carpeta, incluyendo la ruta de acceso y en nombre del archivo.

La pregunta es:

Como hago para que en el evento click del ComboBox1, ¿se abra el archivo seleccionado?

Se que tiene que ver con la asignación de una variable y la instrucción Open, pero no doy en el clavo.

1 respuesta

Respuesta
1

¿Qué tipo de archivos son?, ¿Solo hojas excel? Aclara

Buenas tardes / noches Luis.

Los archivos son de todo tipo, excel, word, jpg, pdf, etc.

Lo que quiero hacer es algo similar a las listas desplegables de windows, donde se despliega la lista de archivos, haces click y se abre el que has seleccionado.

Saludos y gracias por tu atención.

Bien, utilizaremos el api ShellExecute

'4c7569735f50

En un modulo ( no de clase) pegas esto:

Option Explicit
' Declaración del api ShellExecute
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

'Constantre para el modo en que se abre la ventana: Normal
Public Const SW_SHOWNORMAL = 1

Sub abrir(archivo As String)
On Error Resume Next
ShellExecute Application.hwnd, "Open", archivo, _
vbNullString, _
vbNullString, _
SW_SHOWNORMAL
End Sub

** El macro se llama abrir(archivo) y comopuedes ver necesita como argumento la ruta completa del archivo a abrir. La llamada seria:

call abrir("C:\TODO\Docu\misarchivos.doc")

Ahora solo necesitas utilizar el evento click del combo y pasarle el item del combo como argumento a la sub abrir

Private Sub ComboBox1_Click()
Call abrir(ComboBox1.Text)
End Sub

Luis, con razón estas en la lista del selecto grupo de mis especialistas preferidos.

Muchas gracias, tu sugerencia funciono perfectamente y como decimos aquí, "al pelo".

Gracias por la ayuda.

Saludos desde Venezuela.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas