Puoi usare le api di sistema per chiedere a Windows di aprire un file usando l'applicazione di default per quel tipo di file.
Se scegli di lavorare col doppioclick, allora apri il "modulo vba del foglio su cui lavori" e prova inserendo questo codice:
- Codice: Seleziona tutto
#If VBA7 Then 'OBBLIGATORIAMENTE IN TESTA AL MODULO
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
#Else
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
#End If
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
ftopen = ThisWorkbook.Path & Application.PathSeparator & Cells(Target.Row, "B").Value
lngX = ShellExecute(vbNull, "Open", ftopen, "", "", vbMaximizedFocus)
End Sub
La parte dichiarativa deve trovarsi obbligatoriamente in testa al Modulo, prima di qualsiasi Macro.
Il codice della Worksheet_BeforeDoubleClick (nell'esempio) chiedera' a windows di aprire il file che si trova nella stessa directory del workbook e il cui nome sia scritto in colonna B della riga "doppiocliccata".
Adatta tu la macro ai tuoi bisogni, es comporre il nome file partendo da una diversa directory, o aggiungere automaticamente data/ora di inizio, o controllare che quel corso non sia gia' stato svolto, o...
Ciao