08/05/2024 - surfgarden ha scritto:
    strProgramName = "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
   strProgramName64bit = "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
   strPercorso = CurrentProject.Path & "\" & "CRX_" & [Forms]![msc_qryCRX]![cboScAnno].Value & ".xlsm"
 
  On Error GoTo 10
       Call Shell(strProgramName & " " & strPercorso, vbMaximizedFocus)
       Exit Sub
10  Call Shell(strProgramName64bit & " " & strPercorso, vbMaximizedFocus)
Ma sei sicuro che il tuo codice funzioni? Se il nome del file dovesse avere avesse degli spazi ti darebbe errore all'apertura di excel.
Poi l'istruzione goto 10 non si puo' guardare…. Io farei cosi':
...
On Error GoTo Err_handler
Dim strProgramName As String
Dim strPercorso As String
    strPercorso = CurrentProject.Path & "\" & "CRX_" & [Forms]![msc_qryCRX]![cboScAnno].Value & ".xlsm"
    If Len(Dir("C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE")) > 0 Then
        strProgramName = "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
    Else
        strProgramName = "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
    End If
    Call Shell(strProgramName & " " & Chr(34) & strPercorso & Chr(34), vbMaximizedFocus)
Exit_Err_handler:
Exit Sub
Err_handler:
    MsgBox Err.Description
    Resume Exit_Err_handler
End Sub