Abrir Acceso Directo de un Libro de Excel

20/01/2010 - 13:30 por Guli | Informe spam
Hola a todos!!!
Tengo el siguiente código por el cual me permite abrir cualquier archivo
(sea acceso directo o no) con cualquier extensión. El tema es que cuando
quiero abrir un acceso directo de un libro de excel (*.xls) no hace nada y se
me cuelga excel.
Espero puedan responder!!
Detallo el código utilizado:

Option Explicit

'=' API declaration
'=Private 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

Private Sub CommandButton1_Click()
Dim hwnd As Long
Dim res As Long
res = ShellExecute(hwnd, "Open", "C:\"(ruta del archivo), "", "", 1)
End Sub

Gracias de antemano!!
Saludos,

Guli

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
20/01/2010 - 17:42 | Informe spam
hola, !

Tengo el siguiente codigo por el cual me permite abrir cualquier archivo (sea acceso directo o no) con cualquier extension.
El tema es que cuando quiero abrir un acceso directo de un libro de excel (*.xls) no hace nada y se me cuelga excel.
Espero puedan responder!!
Detallo el codigo utilizado:



1) si estas usando el codigo desde excel-vba... por que no usar un simple y directo workbooks.open . (??)?)

2) podrias poner un ejemplo mas concreto en cuanto al uso de: "... "C:\"(ruta del archivo), ..." (???)

saludos,
hector.

__ el codigo expuesto __
Option Explicit
Private 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

Private Sub CommandButton1_Click()
Dim hwnd As Long
Dim res As Long
res = ShellExecute(hwnd, "Open", "C:\"(ruta del archivo), "", "", 1)
End Sub
Respuesta Responder a este mensaje
#2 Guli
20/01/2010 - 19:20 | Informe spam
Hector, me explico mejor:
Tengo un acceso directo de un libro de excel en el escritorio llamado
"Ejemplo" (ruta "C:\Escritorio\Ejemplo") el cual hace referencia al archivo
"Ejemplo12.xls" (ruta "Q:\Ejemplos\2009\Ejemplo12.xls") pero este se va
modificando a la vez que cambia de nombre. Mi objetivo es abrir el acceso
directo porque a medida que el archivo de referencia vaya cambiando, lo único
que hago yo es crear un nuevo acceso directo y siempre usar el mismo nombre
("Ejemplo").
Me explico?? Es por esto que no puedo utilizar un workbooks.open
Si lo hago con otro tipo de archivo, por ejemplo un .gif ó .sap ó cualqueir
otro y le hago un acceso directo y lo pongo en el escritorio funciona, pero
con un excel no!!
Espero te sirva,

Saludos,
Guli
Respuesta Responder a este mensaje
#3 Héctor Miguel
20/01/2010 - 23:19 | Informe spam
hola, !

prueba con una instruccion simple del Shell (ejecutando el lector de comandos "cmd.exe")
solo si la ruta completa incluye espacios la debes delimitar por dobles-comillas-dobles (p.e.)

Sub Abre_un_Lnk()
Shell "cmd.exe /c ""c:\documents and settings\<usuario>\escritorio\mi acceso.lnk""", 1
End Sub

saludos,
hector.

__ OP __
Tengo un acceso directo de un libro de excel en el escritorio llamado "Ejemplo" (ruta "C:\Escritorio\Ejemplo")
el cual hace referencia al archivo "Ejemplo12.xls" (ruta "Q:\Ejemplos\2009\Ejemplo12.xls")
pero este se va modificando a la vez que cambia de nombre.
Mi objetivo es abrir el acceso directo porque a medida que el archivo de referencia vaya cambiando
lo unico que hago yo es crear un nuevo acceso directo y siempre usar el mismo nombre ("Ejemplo").
Me explico?? Es por esto que no puedo utilizar un workbooks.open
Si lo hago con otro tipo de archivo, por ejemplo un .gif o .sap o cualqueir otro
y le hago un acceso directo y lo pongo en el escritorio funciona, pero con un excel no!!
Respuesta Responder a este mensaje
#4 Guli
21/01/2010 - 14:12 | Informe spam
Muchas Gracias Hector!!!
Saludos,

Guli

"Héctor Miguel" escribió:

hola, !

prueba con una instruccion simple del Shell (ejecutando el lector de comandos "cmd.exe")
solo si la ruta completa incluye espacios la debes delimitar por dobles-comillas-dobles (p.e.)

Sub Abre_un_Lnk()
Shell "cmd.exe /c ""c:\documents and settings\<usuario>\escritorio\mi acceso.lnk""", 1
End Sub

saludos,
hector.

__ OP __
> Tengo un acceso directo de un libro de excel en el escritorio llamado "Ejemplo" (ruta "C:\Escritorio\Ejemplo")
> el cual hace referencia al archivo "Ejemplo12.xls" (ruta "Q:\Ejemplos\2009\Ejemplo12.xls")
> pero este se va modificando a la vez que cambia de nombre.
> Mi objetivo es abrir el acceso directo porque a medida que el archivo de referencia vaya cambiando
> lo unico que hago yo es crear un nuevo acceso directo y siempre usar el mismo nombre ("Ejemplo").
> Me explico?? Es por esto que no puedo utilizar un workbooks.open
> Si lo hago con otro tipo de archivo, por ejemplo un .gif o .sap o cualqueir otro
> y le hago un acceso directo y lo pongo en el escritorio funciona, pero con un excel no!!


.

Respuesta Responder a este mensaje
#5 Guli
21/01/2010 - 19:27 | Informe spam
Muchas gracias Hector!!!!

Saludos,

Guli

"Héctor Miguel" escribió:

hola, !

prueba con una instruccion simple del Shell (ejecutando el lector de comandos "cmd.exe")
solo si la ruta completa incluye espacios la debes delimitar por dobles-comillas-dobles (p.e.)

Sub Abre_un_Lnk()
Shell "cmd.exe /c ""c:\documents and settings\<usuario>\escritorio\mi acceso.lnk""", 1
End Sub

saludos,
hector.

__ OP __
> Tengo un acceso directo de un libro de excel en el escritorio llamado "Ejemplo" (ruta "C:\Escritorio\Ejemplo")
> el cual hace referencia al archivo "Ejemplo12.xls" (ruta "Q:\Ejemplos\2009\Ejemplo12.xls")
> pero este se va modificando a la vez que cambia de nombre.
> Mi objetivo es abrir el acceso directo porque a medida que el archivo de referencia vaya cambiando
> lo unico que hago yo es crear un nuevo acceso directo y siempre usar el mismo nombre ("Ejemplo").
> Me explico?? Es por esto que no puedo utilizar un workbooks.open
> Si lo hago con otro tipo de archivo, por ejemplo un .gif o .sap o cualqueir otro
> y le hago un acceso directo y lo pongo en el escritorio funciona, pero con un excel no!!


.

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