Discussione:
Percorso assoluto -> relativo in VBA
(troppo vecchio per rispondere)
Frank
2008-09-19 16:37:38 UTC
Permalink
Ho un pulsante abbinato a questa macro:

------------------------------------------------------------------------
Sub Luglio08_Click()
Workbooks.Open Filename:="E:\Documenti\Cantina\Riepiloghi\Luglio08.xls" _
, UpdateLinks:=3
End Sub
------------------------------------------------------------------------

Vorrei, se possibile,trasformare quel percorso assoluto in relativo in
maniera che spostando tutta una cartella si riuscisse a trovare quel file.
Grazie, Francesco ;-)
Maurizio Borrelli
2008-09-20 06:22:28 UTC
Permalink
Post by Frank
------------------------------------------------------------------------
Sub Luglio08_Click()
Workbooks.Open Filename:="E:\Documenti\Cantina\Riepiloghi\Luglio08.xls" _
, UpdateLinks:=3
End Sub
------------------------------------------------------------------------
Vorrei, se possibile,trasformare quel percorso assoluto in relativo in
maniera che spostando tutta una cartella si riuscisse a trovare quel file.
Ciao Francesco.

Problema: A parte il tempo necessario per una ricerca, che potrebbe
essere inaccettabile, si potrebbe cercare un file di nome "Luglio08.xls"
in tutti i dischi accessibili dal pc ma... se ce ne fosse piu` di uno?
Caso questo non improbabile, direi.

Tuttavia parli di spostare tutta la cartella, quindi si potrebbe
presumere che "Luglio08.xls" si trovi nella stessa Cartella (nel senso
di Folder, Directory) in cui si trova la Cartella di lavoro nella quale
si trova la routine "Luglio08_Click". In tal caso un modo potrebbe
essere:

' Un Modulo standard
'
Option Explicit

Public Sub Luglio08_Click()
Const cFilename = "Luglio08.xls"
Dim strPSep As String
Dim strPath As String
Dim strFullName As String
Dim lngUpdateLinks As XlUpdateLinks

lngUpdateLinks = xlUpdateLinksAlways
With Application
strPSep = .PathSeparator
strPath = .ThisWorkbook.Path
End With
If Right$(strPath, 1) <> strPSep Then
strPath = strPath & strPSep
End If
strFullName = strPath & cFilename
Workbooks.Open Filename:=strFullName _
, UpdateLinks:=lngUpdateLinks
End Sub

Tuttavia... con questo metodo potresti anche aprire il file ma non
aggiornare i collegamenti che saranno sicuramente cambiati. Raccontaci
di che collegamenti si tratta.

(Facci sapere se e eventualmente come hai risolto. Grazie!)

--
Ciao!
Maurizio Borrelli [Microsoft MVP Office System]
http://www.riolab.org/
Frank
2008-09-20 09:37:58 UTC
Permalink
Post by Maurizio Borrelli
Tuttavia parli di spostare tutta la cartella, quindi si potrebbe
presumere che "Luglio08.xls" si trovi nella stessa Cartella
Si, hai capito perfettamente nonostante la mia "avarizia" di
informazioni ...
Post by Maurizio Borrelli
Tuttavia... con questo metodo potresti anche aprire il file ma non
aggiornare i collegamenti che saranno sicuramente cambiati. Raccontaci
di che collegamenti si tratta.
Sono collegamenti ad altri file sempre nella solita cartella, quindi li
trova senza problemi e il tuo script funziona benissimo almeno su quello
che ho provato.

Ti ringrazio per il tuo tempo,
Francesco ;-)
Maurizio Borrelli
2008-09-20 10:09:01 UTC
Permalink
Ciao Francesco.
Post by Frank
Post by Maurizio Borrelli
Tuttavia... con questo metodo potresti anche aprire il file ma non
aggiornare i collegamenti che saranno sicuramente cambiati. Raccontaci
di che collegamenti si tratta.
Sono collegamenti ad altri file sempre nella solita cartella, quindi li
trova senza problemi
Uhm... Trova cosa? I file nella directory originaria, suppongo. Immagino
tu abbia fatto una *copia* di tale directory, non uno *spostamento*.
Prova lo spostamento.
Post by Frank
e il tuo script funziona benissimo almeno su quello
che ho provato.
Uhm... Vedi sopra.
Post by Frank
Ti ringrazio per il tuo tempo,
Grazie a te per il riscontro! :-)

--
Ciao!
Maurizio Borrelli [Microsoft MVP Office System]
http://www.riolab.org/

Loading...