Abrir fichero Excel desde botón de comando

Tengo necesidad de abrir una hoja de calculo desde un formulario, idea es codificar un botón de comando para en el evento "al hacer clic" para que me abra el archivo "SolicitarEntradas.xls" que se encuentra en la ruta: F:\SISTEM_INFORMATICO\PLANTILLAS\Plantillas Word\SolicitarEntradas.xls, Le tengo puesto este codigo: Application.FollowHyperlink"F:\SISTEMA_INFORMATICO\PLANTILLAS\Plantillas_Word\SolicitarEntradas.xls"
Per me da el siguiente error.

¿Alguna Sugerencia?

1 Respuesta

Respuesta
1

Pruebe con este código

Private Sub Comando4_Click()
 Dim archivo As Long
 archivo = Shell("excel.exe F:\SISTEMA_INFORMATICO\PLANTILLAS\Plantillas_Word\SolicitarEntradas.xls", vbMaximizedFocus)
End Sub

Gracias Eduardo. Lo he puesto y funciona bien  

También me gustaría saber si esa misma estructura de cadena sirve para abrir archivos de tipo pdf, Word, jpg, etc?

Es mejor utilizar algo más automatizado, le preparé este ejemplo.

Adicione este formulario, consta de un campo de texto para recoger el nombre completo del archivo, es decir, carpeta y nombre con su extensión, adicione un botón de comando. Vamos a utilizar una llamada a la API. Después de seleccionar el archivo éste se abre maximizado, como ejemplo acá le dejo unas pruebas de apertura para archivos de Word, Excel, etc.

Este es un documento de Word.

Este es un documento de Excel.

Este es un documento de Publisher

Este es un video en MP4.

CÓDIGO DEL BOTON DEL FORMULARIO

Private Sub btnArchivo_Click()
  Me.ctlArchivo = selectArchivo()
  If Me.ctlArchivo <> "" Then
    Call ExecuteFile(Me.ctlArchivo, "Open")
  End If
End Sub

En un módulo adicione este código

Public Const SW_HIDE = 0
Public Const SW_MINIMIZE = 6
Public Const SW_RESTORE = 9
Public Const SW_SHOW = 5
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNA = 8
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOWNORMAL = 1
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
Public Sub ExecuteFile(sFileName As String, sAction As String)
    Dim vReturn As Long
    'sAction puede ser "Open" o  "Print".
    If ShellExecute(Access.hWndAccessApp, sAction, sFileName, vbNullString, "", SW_SHOWNORMAL) < 33 Then
        DoCmd.Beep
        MsgBox "Archivo no encontrado.",vbCritical,"Le informo"
    End If
End Sub
Public Function selectArchivo() As String
    'Creamos un control de errores
    On Error GoTo sol_err
    'Declaramos las variables
    Dim vFD As Object 'vFD=FileDialog
    Dim vRutaIni As String
    'Difinimos la ruta inicial
    vRutaIni = Application.CurrentProject.Path
    'Creamos el objeto FileDialog
    Set vFD = Application.FileDialog(msoFileDialogFilePicker)
    'Configuramos las características de nuestra ventana de dialogo
    With vFD
        .Title = "Seleccione el documento"
        .ButtonName = "A seleccionado el Archivo"
        .InitialView = msoFileDialogViewSmallIcons
        .InitialFileName = vRutaIni
        .Filters.Add "Todos los archivos", "*.*"
        .Filters.Add "Archivos de BBDD", "*.accdb;*.accdt;*.accde"
        'Detectamos el boton pulsado por el usuario
        If .Show = -1 Then
            'Asignamos a la función la carpeta seleccionada, convirtiendola a un valor de tipo String
            selectArchivo = CStr(.SelectedItems.Item(1))
        Else
            'Si se pulsa cancelar avisamos y salimos
            MsgBox "Ha cancelado la selección", vbOKCancel Or vbExclamation Or vbMsgBoxSetForeground, "Access"
            Exit Function
        End If
    End With
Salida:
    Exit Function
sol_err:
    MsgBox "Se ha producido un error: " & Err.Number & " - " & Err.Description
    Resume Salida
End Function

Para la función SelectArchivo() requiere que haga referencia a la librería  "Microsoft Office x.y Object Library". Esto le evita los dolores de cabeza del método FollowHyperlink. Solo lo utilizo para abrir documentos PDF en control Browser. El código lo he probado únicamente en Access de 32 bits.

Si quiere el ejemplo lo puede solilicitar a [email protected] favor en el asunto anotar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas