Condividi:        

[Excel]: collegamento ipertestuale "FISSO"

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel]: collegamento ipertestuale "FISSO"

Postdi karug64 » 08/06/19 16:24

Salve a tutti.
Nel mio file (che utilizzo in ufficio) ho una serie di collegamenti ipertestuali che puntano su una cartella sita su un server condiviso.

Se sposto fil file sul mio locale gli indirizzi dei collegamenti cambiano automaticamente puntando a file:///C:\user\.....

Ma se dopo che ho apportato le modifiche lo ricopio nella cartella dov'era prima i collegamenti restano sempre a c:\ e non si ripristinano.

Poichè ho necessità di lavorare sul file anche da locale vi chiedo: c'è un modo per far si che i collegamenti non si aggiornino automaticamente rendendoli "fissi" così che dove metta e metta il file (sempre avendo disponibile la cartella condivisa) si possa accedere ai link ?
Bisogna settare qualcosa nelle opzioni di excel ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi Anthony47 » 08/06/19 22:51

Puoi dettagliare la situazione iniziale, le operazioni che esegui, quel che succede? Sia nel primo passaggio che in quello inverso.
Avatar utente
Anthony47
Moderatore
 
Post: 19476
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi karug64 » 08/06/19 23:12

Anthony47 ha scritto:Puoi dettagliare la situazione iniziale, le operazioni che esegui, quel che succede? Sia nel primo passaggio che in quello inverso.


Certo:
Situazione iniziale:
File "Prova.xlsm" contenente dei collegamenti ipertestuali a file inseriti in una cartella di rete "(z:\cartella_condivisa\test\IMMAGINI)" posizionato nella cartella "z:\cartella_condivisa\test".

Copia il file Prova.xlsm su c:\desktop
Lo apro ed i collegamenti sono diventati (file:///c:\Users\karug64\Desktop\IMMAGINI\img1.jpg)

Lo copio su una chiavetta:
Lo apro ed i collegamenti sono diventati (file:///E:\Cartella\\IMMAGINI\img1.jpg)

In pratica in automatico viene sostituito il percorso prendendo quello in cui si trova il file che contiene i collegamenti ipertestuali.

Spero di essere stato chiaro.
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi Anthony47 » 09/06/19 00:40

Evidentemente l'hyperlink e' inserito nel file in modo "relativo"
Per inserirlo in modo fisso andrebbe inserito l'indirizzo completo: drive, percorso, nome file

PROBABILMENTE questa macro dovrebbe fare il lavoro:
Codice: Seleziona tutto
Sub HLinkChange()
Dim hlPre As String, cHLink As String
'
hlPre = ThisWorkbook.Path & "\"
'
For i = 1 To ActiveSheet.Hyperlinks.Count
    cHLink = ActiveSheet.Hyperlinks(i).Address
    If UCase(Left(cHLink, Len(hlPre))) <> UCase(hlPre) And UCase(Left(cHLink, 4)) <> "HTTP" Then
        ActiveSheet.Hyperlinks(i).Address = hlPre & cHLink
    End If
Next i
End Sub

Va eseguita sul file originale nell'installazione originale.
Tieni presente che la macro potrebbe essere potenzialmente distruttiva (relativamente agli hyperlink) nel caso che ci sia una situazione mista di hyperlink "relativi" e altri "assoluti"

Direi che sarebbe prudente eseguire l'operazione su UNA COPIA del file (nella posizione originale) e collaudare il risultato su tutti gli hyperlink

Potrebbe essere prudente listare prima gli attuali hyperlink tramite questa macro:
Codice: Seleziona tutto
Sub HLinkList()
Dim hlPre As String, cHLink As String
'
hlPre = ThisWorkbook.Path & "\"
'
Debug.Print ">>> Hyperlink Address:"
For i = 1 To ActiveSheet.Hyperlinks.Count
    cHLink = ActiveSheet.Hyperlinks(i).Address
    Debug.Print cHLink
Next i
End Sub

Dopo aver eseguito la macro, vai nella "Finestra Immediata" del vba (usa Contr-g) ed esamina il contenuto.
Oppure, per un consiglio, pubblica tutto il contenuto della finestra da ">>> Hyperlink Address:" in avanti.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19476
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi karug64 » 09/06/19 10:00

Intanto grazie per le soluzioni proposte.

Purtroppo facendo delle prove in locale (tra disco C e pendrive E) il link al collegamento cambia come detto ad inizio di post.

Unica particolarità riscontrata nella finestra di debug è che in alcuni casi è presente "/" ed in altri "\" per il resto tutto nella norma.

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi karug64 » 09/06/19 10:21

Penso che così funzioni (almeno in locale, proverò sulla rete).
Ho fatto un pò di prove a spostare il file su varie posizioni ed il collegamento resta sempre lo stesso .....

=COLLEG.IPERTESTUALE("z:\cartella_condivisa\test\IMMAGINI\850338.pdf"; "850338.pdf")

Ora devo trovare il modo di modificare tutti i 230 collegamenti già presenti trasformandoli nella formula sopra esposta ....
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi Anthony47 » 09/06/19 11:54

Quella scritta "potenzialmente distruttiva" in rosso mi ha perseguitato per tutta la notte, in cento variazioni sul tema...
Mi e' venuto anche un grosso dubbio circa l'idoneita' di quanto proposto su una situazione di file su disco di rete (mi sentirei invece abbastanza tranquillo per una installazione su disco interno, nonostante le tue prime impressioni sul test Disco /PenDrive).

Il dubbio nasce dal fatto che, se il file in rete e' visibile da piu' utenti, non e' detto che tutti vedano il disco di rete con lo stesso Nome; quindi rendere assoluto un link potrebbe precluderne l'accesso ad altri utenti (perche' quello che a te e' "z:\cartella_condivisa\test" ad altri potrebbe essere "E:\network_drive\test")

Facciamo cosi': esegui sul file in rete solo la Sub HLinkList, ma in questa variante:
Codice: Seleziona tutto
Sub HLinkList()
Dim hlPre As String, cHLink As String
'
hlPre = ThisWorkbook.Path & "\"
'
Debug.Print ">>> Hyperlink Address:", hlPre
For i = 1 To ActiveSheet.Hyperlinks.Count
    cHLink = ActiveSheet.Hyperlinks(i).Address
    if i<190 then Debug.Print cHLink
Next i
End Sub

Poi pubblica il contenuto della finestra Immediata del vba e ci ragioneremo sopra

Se altri utenti accedono al file, controlla come loro "vedono" il disco di rete; se lo vedono in modo diverso da te prova ad eseguire la stessa Sub HLinkList dalla loro postazione e pubblica anche il loro risultato.

La gestione della rete la fate al vostro interno, o e' in carico a societa' esterna? Hai un contatto con l'Amministratore di rete (perche' prima di procedere alla modifica degli hyperlink sara' bene parlare anche con lui)?

Pero' mi chiedo:
a che pro si farebbe questa operazione? Nel senso che gli hyperlink sono persi quando copi il file sul tuo disco, sia che puntino a un indirizzo presumibilmente inesistente del tuo filesystem e sia che puntino a un indirizzo di rete non disponibile sul pc. Quindi?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19476
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi karug64 » 10/06/19 07:07

Buongiorno Anthony,

Anthony47 ha scritto:Mi e' venuto anche un grosso dubbio circa l'idoneita' di quanto proposto su una situazione di file su disco di rete.

Il dubbio nasce dal fatto che, se il file in rete e' visibile da piu' utenti, non e' detto che tutti vedano il disco di rete con lo stesso Nome; quindi rendere assoluto un link potrebbe precluderne l'accesso ad altri utenti (perche' quello che a te e' "z:\cartella_condivisa\test" ad altri potrebbe essere "E:\network_drive\test")


No. L'unità di rete è mappata per tutti gli utenti in maniera tale che sia vista con lo stesso nome per tutti.

Anthony47 ha scritto:Pero' mi chiedo:
a che pro si farebbe questa operazione? Nel senso che gli hyperlink sono persi quando copi il file sul tuo disco, sia che puntino a un indirizzo presumibilmente inesistente del tuo filesystem e sia che puntino a un indirizzo di rete non disponibile sul pc. Quindi?


L'esigenza proposta è nata dal fatto che ho dovuto fare del lavoro a casa su quel file, sul mio pc, e non appena aperto il file tutti i riferimenti sono andati a cartequarantotto !!!

Grazie, comunque per i suggerimenti :)
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi Anthony47 » 10/06/19 09:18

L'esigenza proposta è nata dal fatto che ho dovuto fare del lavoro a casa su quel file, sul mio pc, e non appena aperto il file tutti i riferimenti sono andati a cartequarantotto !!!
Si, ma allo stesso modo quando salvi il file sul drive di rete tutto ritorna come prima.

TUTTAVIA, visto che mi sono degnato di provare quello che ti avevo suggerito, mi sono accorto che in realta' c'e' una opzione di salvataggio che adatta gli indirizzi (arbitrariamente, mi vien da dire). Dopo aver reso assoluti gli indirizzi, il file va salvato disabilitando quella opzione.

Quindi:
a) Lavorando sul file di rete, rendi Assoluti gli indirizzi con la Sub HLinkChange
b) salva il file usando l'opzione SalvaConNome...
b1) cerca sulla finestra SalvaConNome l'opzione "Strumenti" (si trova vicino ai pulsanti Salva / Annulla; se hai XL2013 o superiore devi scegliere "Altre Opzioni..." dalla visualizzazione in backstage a cui si arriva tramite Menu /File)
b2) Strumenti /Opzioni web; togli la spunta alla voce Aggiorna i collegamenti durante il salvataggio
c) completa il salvataggio

Mi viene anche il sospetto che rendere assoluti gli indirizzi sia inutile; quindi potresti provare direttamente con le fasi b) e c); poi trasferisci il file su pendrive e controlli subito l'esito

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19476
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi karug64 » 10/06/19 20:32

Anthony47 ha scritto:Si, ma allo stesso modo quando salvi il file sul drive di rete tutto ritorna come prima.


Purtroppo no. Sembra assurdo, ma il processo avviene solo una volta. Quando copio il file in qualsiasi altra posizione resta con i collegamenti a file///c:\user\......

Purtroppo il lavoro era urgente e andava finito in fretta e, quindi, stamattina ho provveduto a ripristinare manualmente i link sul file elaborato nel fine settimana. Alla fine erano solo 290 righe .....

P.S.

Anthony47 ha scritto:TUTTAVIA, visto che mi sono degnato di provare quello che ti avevo suggerito, mi sono accorto che in realta' c'e' una opzione di salvataggio che adatta gli indirizzi (arbitrariamente, mi vien da dire). Dopo aver reso assoluti gli indirizzi, il file va salvato disabilitando quella opzione.



Provato fatto quello che hai suggerito. Devo dire che però il link è cambiato da C: a E: (utilizzo office 2019)



Grazie, comunque per il tuo solito ed insostituibile impegno.
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi Anthony47 » 11/06/19 22:30

Non ho capito quale e' la tua situazione aggiornata...
Avatar utente
Anthony47
Moderatore
 
Post: 19476
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel]: collegamento ipertestuale "FISSO"

Postdi karug64 » 15/06/19 09:52

Anthony47 ha scritto:Non ho capito quale e' la tua situazione aggiornata...


La situazione "finale" è che ho inserito manualmente in ogni cella la formula =colleg.ipertestuale() e salvato.

Così sembra funzionare.

Grazie ancora
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "[Excel]: collegamento ipertestuale "FISSO"":


Chi c’è in linea

Visitano il forum: raimea e 6 ospiti