Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

collegamenti ipertestuali Opzioni
gatola
Inviato: Friday, November 12, 2010 9:44:31 AM
Rank: Newbie

Iscritto dal : 11/12/2010
Posts: 9
Ciao a tutti,
ho un problema enorme con i collegamenti ipertestuali di excel e spero nel vostro aiuto.

File di excel con 8 fogli di lavoro
ogni foglio contiene un elenco di documenti
nella colonna C è riportato l'elenco numerico dei documenti (da 1 a 1000)
ad ogni cella numero corrisponde un collegamento ipertestuale al file PDF corrispondente al documento elencato
i file pdf sono contenuti in diverse cartelle a seconda della numerazione (1-99;100-199; ecc)
le cartelle sono contenute in una cartella "docPdf" salvata sul server

Il problema è che non posso più aprire i pdf collegati in quanto senza alcuna ragione apparente excel ha modificato il percorso di collegamento da: \\Server\docpdf\1-99\nomefile.pdf
a: \\C:\Documents and Settings\Users\Dati applicazioni\Microsoft\Excel\docpdf\1-99\nomefile.pdf

DOMANDA:
1) qual'è l'origine del problema? così che possa evitare si ripeti
2) come posso attribuire nuovamente il giusto percorso senza doverlo fare manualmente per tutti i 7000 docuementi?
3) potete suggerirmi un altro sistema per gestire l'elenco dei documenti?

grazie infinite e buona giornata a tutti.
Sponsor
Inviato: Friday, November 12, 2010 9:44:31 AM

 
a10n11
Inviato: Friday, November 12, 2010 7:34:58 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
ti rimando alla lettura di un vecchio post che proponeva la stessa problematica:
http://forum.aiutamici.com/yaf_postst67025_Excel-2007--Collegamenti-ipertestuali--Modificare.aspx

nel tuo caso dovrai modificare la macro come segue:

Sub CambiaLink()
Dim Hyl As Hyperlink
newname = "\\Server\docpdf\1-99\"
For Each Hyl In Sheets("Foglio1").Hyperlinks
x = Split(Hyl.Address, "\")
nomefile = x(UBound(x))
Hyl.Address = newname & nomefile
Next Hyl
End Sub


PS. Provare sempre su un file provvisiorio
saluti
Giap



gatola
Inviato: Monday, November 15, 2010 11:51:55 AM
Rank: Newbie

Iscritto dal : 11/12/2010
Posts: 9
grazie mille a10n11, anche per la tempestività della tua risposta.
Funziona e so' che non avevi dubbi, ma avrei bisogno di un ulteriore aiuto.
con questa macro tutti i collegamenti vengono indirizzati alla cartella "1-99", ma nell'elenco i documenti sono contenuti in cartelle
diverse a seconda della numerazione quindi:
i documenti dal 1 al 99 sono nella cartella "1-99"
i documenti dal 100 al 199 sono nella cartella "100-199"
e così via.
E' possibile modificare la macro in modo da risolvere questo problema? magari applicandola ad una serie di righe anziché a tutto il foglio?

Spero di non abusare troppo della tua pazienza.
buona giornata.
a10n11
Inviato: Monday, November 15, 2010 7:10:05 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
prova a modificare così:

Sub CambiaLink()
Dim Hyl As Hyperlink
newname = "\\Server\docpdf\"
For Each Hyl In Sheets("Foglio1").Hyperlinks
x = Split(Hyl.Address, "\")
nomefile = x(UBound(x) - 1) & "\" & x(UBound(x))
Hyl.Address = newname & nomefile
Next Hyl
End Sub

saluti
Giap

gatola
Inviato: Wednesday, November 17, 2010 10:57:44 AM
Rank: Newbie

Iscritto dal : 11/12/2010
Posts: 9
ciao,
porta pazienza, sono assolutamente ignorante in materia.

ho provato a modificare come mi hai indicato ma mi da errore "indice non incluso nell'intervallo"
help mi!
a10n11
Inviato: Wednesday, November 17, 2010 12:11:27 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
gatola ha scritto:
ciao,
porta pazienza, sono assolutamente ignorante in materia.

ho provato a modificare come mi hai indicato ma mi da errore "indice non incluso nell'intervallo"
help mi!


salve
qual'è la riga che ti dà l'errore?
la puoi individuare cliccando sul pulsante "Debug" quando compare il messaggio di errore.
La riga incriminata è quella evidenziata in giallo.
saluti
Giap

gatola
Inviato: Friday, November 19, 2010 9:59:07 AM
Rank: Newbie

Iscritto dal : 11/12/2010
Posts: 9
questa:
nomefile = x(UBound(x) - 1) & "\" & x(UBound(x))
ciao
a10n11
Inviato: Friday, November 19, 2010 12:39:38 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
Nel tuo foglio ci sono forse altri collegamenti ipertestuali? del tipo riferimenti a nomi o celle del documento?
se si, l'errore che segnali è normale poichè l'array che viene creato dall'istruzione split avrà un unico elemento e l'istruzione x(UBound(x) - 1) manda tutto nel pallone.
prova a modificare così:

Sub CambiaLink()
Dim Hyl As Hyperlink
newname = "\\Server\docpdf\"
For Each Hyl In Sheets("Foglio1").Hyperlinks
x = Split(Hyl.Address, "\")
If UBound(x) > 1 Then
NOMEFILE = x(UBound(x) - 1) & "\" & x(UBound(x))
Hyl.Address = newname & NOMEFILE
End If
Next Hyl
End Sub

saluti
Giap

gatola
Inviato: Wednesday, November 24, 2010 11:08:43 AM
Rank: Newbie

Iscritto dal : 11/12/2010
Posts: 9
FUNZIONA!!!!
su tutti i fogli tranne che sull'ultimo che ho creato, il "2010"
e precisamente:

QUESTA FUNZIONA
Sub CambiaLink()
Dim Hyl As Hyperlink
newname = "\\SERVER\docpdf2009\"
For Each Hyl In Sheets("2009").Hyperlinks
x = Split(Hyl.Address, "\")
If UBound(x) > 1 Then
NOMEFILE = x(UBound(x) - 1) & "\" & x(UBound(x))
Hyl.Address = newname & NOMEFILE
End If
Next Hyl
End Sub

QUESTA INVECE NO
Sub CambiaLink()
Dim Hyl As Hyperlink
newname = ""\\SERVER\docpdf2010\"
For Each Hyl In Sheets("2010").Hyperlinks
x = Split(Hyl.Address, "\")
If UBound(x) > 1 Then
NOMEFILE = x(UBound(x) - 1) & "\" & x(UBound(x))
Hyl.Address = newname & NOMEFILE
End If
Next Hyl
End Sub

Nel foglio ci sono altri collegamenti ipertestuali sempre riferiti ad altri file.

buona giornata
gatola
Inviato: Wednesday, November 24, 2010 11:28:06 AM
Rank: Newbie

Iscritto dal : 11/12/2010
Posts: 9
scusa, dimenticavo di dirti che in tutti i fogli genera i collegamenti alle cartelle giuste (1-99, 100-199, ecc)
mentre sul "2010" genera i collegamenti alle cartelle 1-100, 101-200, ecc.
ciao
a10n11
Inviato: Wednesday, November 24, 2010 4:44:24 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
gatola ha scritto:
FUNZIONA!!!!
su tutti i fogli tranne che sull'ultimo che ho creato, il "2010"
e precisamente:

QUESTA FUNZIONA
Sub CambiaLink()
Dim Hyl As Hyperlink
newname = "\\SERVER\docpdf2009\"
For Each Hyl In Sheets("2009").Hyperlinks
x = Split(Hyl.Address, "\")
If UBound(x) > 1 Then
NOMEFILE = x(UBound(x) - 1) & "\" & x(UBound(x))
Hyl.Address = newname & NOMEFILE
End If
Next Hyl
End Sub

QUESTA INVECE NO
Sub CambiaLink()
Dim Hyl As Hyperlink
newname = ""\\SERVER\docpdf2010\"
For Each Hyl In Sheets("2010").Hyperlinks
x = Split(Hyl.Address, "\")
If UBound(x) > 1 Then
NOMEFILE = x(UBound(x) - 1) & "\" & x(UBound(x))
Hyl.Address = newname & NOMEFILE
End If
Next Hyl
End Sub




Salve
nella macro che non funziona se vedi attentamente nell'assegnazione dle valore della variabile
newname c'è un doppio apice di troppo ""\\SERVER\docpdf2010\" deve essere "\\SERVER\docpdf2010\"



gatola ha scritto:

scusa, dimenticavo di dirti che in tutti i fogli genera i collegamenti alle cartelle giuste (1-99, 100-199, ecc)
mentre sul "2010" genera i collegamenti alle cartelle 1-100, 101-200, ecc.


la macro non modifica il nome delle cartelle, ma ricopia pari pari quelle che trova nel collegamento.
Praticamente non fa altro che sostituire la stringa segnata in rosso

\\C:\Documents and Settings\Users\Dati applicazioni\Microsoft\Excel\docpdf\1-99\nomefile.pdf

con la stringa segnata in Verde

\\Server\docpdf\1-99\nomefile.pdf

Nel foglio 2010 qual'è l'indirizzo del collegamento ipertestuale da cambiare?
saluti
Giap


gatola
Inviato: Monday, November 29, 2010 12:19:29 PM
Rank: Newbie

Iscritto dal : 11/12/2010
Posts: 9
quello degli apici è stato un errore di trascrizione, ma in effetti la stringa da sostituire è \\C:\Documents and Settings\Users\Dati applicazioni\Microsoft\Excel\docpdf\1-100\nomefile.pdf benchè la cartella 1-100 non esista e non sia mai esistita. Tanto più che prima del pasticcio i collegamenti alla cartella 1-99 funzionavano.
ciao
a10n11
Inviato: Monday, November 29, 2010 2:40:58 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
sarebbe interessante sapere cosa è stato fatto nel file e capire cosa abbia scombussolato i collegamenti.
saluti
Giap

gatola
Inviato: Wednesday, December 01, 2010 9:24:58 AM
Rank: Newbie

Iscritto dal : 11/12/2010
Posts: 9
Ciao,
con le tue istruzioni sono riuscita a sistemare tutti i fogli tranne l'ultimo creato. Grazie, grazie, grazie!!!!

Ma posso abusare ancora della tua pazienza?
Per risolvere la questione sull'ultimo foglio dovrei rifare tutti i collegamenti manualmente, ma se cancello la colonna con i collegamenti che non funzionano e ne ricreo una nuova, c'è un modo per attribuire automaticamente gli indirizzi dei collegamenti ipertestuali?
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.