Discussion:
Abrir Acceso Directo de un Libro de Excel
(demasiado antiguo para responder)
Guli
2010-01-20 12:30:01 UTC
Permalink
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
Héctor Miguel
2010-01-20 16:42:20 UTC
Permalink
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!!
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
Guli
2010-01-20 18:20:06 UTC
Permalink
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
Héctor Miguel
2010-01-20 22:19:16 UTC
Permalink
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!!
Guli
2010-01-21 13:12:01 UTC
Permalink
Muchas Gracias Hector!!!
Saludos,

Guli
Post by Héctor Miguel
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!!
.
Guli
2010-01-21 18:27:01 UTC
Permalink
Muchas gracias Hector!!!!

Saludos,

Guli
Post by Héctor Miguel
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!!
.
Loading...