Integrando le cose, il codice della Worksheet_BeforeDoubleClick dovrebbe essere:
- Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myPath As String, curPath As String
'
Cancel = True
'
If Target.Address = "$D$5" Then
myPath = "Q:\SCANNERTRASPORTI\DOC UFF TRASPORTI\PRATICHE\"
ElseIf Target.Address = "$D$13" Then
myPath = "Q:\SCANNERTRASPORTI\DOC UFF TRASPORTI\PRATICHE\ISTRUZIONI\P.LIST\"
ElseIf Target.Address = "$D$17" Then
myPath = "Q:\SCANNERTRASPORTI\DOC UFF TRASPORTI\PRATICHE\ISTRUZIONI"
End If
'Fase di cambio destinazione:
Debug.Print "A", CurDir
curPath = CurDir
ChDrive Left(myPath, 2)
ChDir myPath
'Fase di ricerca file:
myFile = Application.GetOpenFilename(filefilter:="Word and Adobe Acrobat Reader Files (*.doc;*.docx;*.pdf),*.doc;*.docx;*.pdf")
If myFile = "Falso" Then Exit Sub
ActiveSheet.Hyperlinks.Add _
Anchor:=Target, _
Address:=myFile, _
TextToDisplay:="" & Target.Value & ""
'Ripristino percorso:
Debug.Print "B", CurDir
ChDrive Left(curPath, 2)
ChDir curPath
Debug.Print "C", CurDir
End Sub
Dopo aver fatto qualche prova, apri la finestra "Immediata" del vba e controlla che le ultime registrazioni siano del tipo
- Codice: Seleziona tutto
A DriveEPercorsoIniziale
B DriveEPercorsoModificato
C DriveEPercorsoIniziale