Torna indietro   Hardware Upgrade Forum > Software > Programmi e Utility

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-11-2007, 17:29   #1
jstef
Senior Member
 
L'Avatar di jstef
 
Iscritto dal: Jun 2006
Città: Milano
Messaggi: 3943
Macro Word - modifica batch di hyperlink

Ciao,

Qualcuno sa come modificare i percorsi all'interno dei "collegamenti ipertestuali" di documenti word, in modalità batch?
Per intenderci quelli che compaiono con la sottolineatura e in blu all'interno del documento.

Si tratta ad esempio di puntamenti a \\nomeserver\nomeshare\path\file.ext che dovrei modificare in X:\path\nomefile.ext, o altre sostituzioni, il tutto su un gran numero di documenti word in diverse cartelle del file server...

Credo che una macro VBS farebbe al caso mio ma non la so scrivere
jstef è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2007, 14:08   #2
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Interessante sta cosa !
Mai fatto nulla del genere, perciò... ti aiuterò.

Quello che chiedi non è certo una soluzione immediata...

Andiamo con ordine :
1. Crea una cartella di Prova, in cui metti file word che contengono hyperlinks... NON usare subito il codice con i file doc che devi realmente modificare !

2. Crea un nuovo documento Word, che chiamerai "BATCH.doc". Il nome deve essere esattamente questo...

3. Il BATCH.doc, che conterrà le routine di batch, deve essere messo nella directory più "alta", la cartella di Prova, che a sua volta conterrà altre sotto-dir e vari file .doc da modificare...

4. Apri BATCH.doc, e crea un solo pulsante CommandButton.

5. Entra nell'editor VBA, poi Menu Strumenti / Riferimenti /
Cerca nei riferimenti disponibili "Microsoft Scripting Runtime", selezionalo e poi OK.

6. Sempre nell'editor VBA crea un nuovo Modulo [ Project(BATCH) / Inserisci / Modulo ]. In questo modulo incolla il seguente codice VBA :

Codice:
Public Collezione As Scripting.Dictionary

Public Function GetFiles(strPath As String, dctDict As Scripting.Dictionary, Optional blnRecursive As Boolean) As Boolean
   
    Dim fsoSysObj      As Scripting.FileSystemObject
    Dim fdrFolder      As Scripting.Folder
    Dim fdrSubFolder   As Scripting.Folder
    Dim filFile        As Scripting.File
    
    Set fsoSysObj = New Scripting.FileSystemObject
    
    On Error Resume Next
    Set fdrFolder = fsoSysObj.GetFolder(strPath)
    If Err <> 0 Then
       GetFiles = False
       GoTo GetFiles_End
    End If
    On Error GoTo 0
    For Each filFile In fdrFolder.Files
       dctDict.Add filFile.Path, filFile.Path
    Next filFile
    If blnRecursive Then
       For Each fdrSubFolder In fdrFolder.SubFolders
          GetFiles fdrSubFolder.Path, dctDict, True
       Next fdrSubFolder
    End If
    GetFiles = True
GetFiles_End:
    Exit Function
    
End Function
7. Al Click del pulsante precedentemente creato associa il seguente codice VBA :

Codice:
Private Sub CommandButton1_Click()

Dim varItem As Variant
Dim strDirPath As String
strDirPath = ThisDocument.Path & "\"

Set Collezione = New Scripting.Dictionary
Dim wordapp As Word.Application
If GetFiles(strDirPath, Collezione, True) Then
    For Each varItem In Collezione
        If Right(CStr(varItem), 9) <> "BATCH.doc" And Right(CStr(varItem), 4) = ".doc" Then
            MsgBox varItem
            Dim worddoc As Word.Document
            Set wordapp = GetObject(, "Word.Application")
            Set worddoc = wordapp.Documents.Open(varItem)
            Dim h As Hyperlink
            For Each h In worddoc.Hyperlinks
                h.Address = "http://www.nuovo_address.com"
                h.TextToDisplay = h.Address
            Next
            worddoc.Save
            worddoc.Close
            Set worddoc = Nothing
        End If
    Next
End If

End Sub
Premendo il tasto il BATCH andrà a cercare tutti gli hyperlink in tutti i file .doc contenuti nella dir e nelle sotto-dir del BATCH.doc, e li sovrascriverà... Mica male, no ?

Arriva fin qui intanto.
Poi vedremo cosa sostituire alla riga rossa per eseguire esattamente ciò di cui hai bisogno... Prova...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2007, 15:19   #3
jstef
Senior Member
 
L'Avatar di jstef
 
Iscritto dal: Jun 2006
Città: Milano
Messaggi: 3943
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
1. Crea una cartella di Prova, in cui metti file word che contengono hyperlinks... NON usare subito il codice con i file doc che devi realmente modificare !


Codice:
            For Each h In worddoc.Hyperlinks
                h.Address = "http://www.nuovo_address.com"
                h.TextToDisplay = h.Address
            Next
Quote:
Premendo il tasto il BATCH andrà a cercare tutti gli hyperlink in tutti i file .doc contenuti nella dir e nelle sotto-dir del BATCH.doc, e li sovrascriverà... Mica male, no ?
Ottimo, immagino che ti sia divertito anche tu

Quote:
Arriva fin qui intanto.
Poi vedremo cosa sostituire alla riga rossa per eseguire esattamente ciò di cui hai bisogno... Prova...
Per il momento grazie mille, Lunedì mattina torno al lavoro e ci provo senz'altro e poi ti aggiorno
Ho l'impressione che occorrerà trovare il modo di specificare la stringa da sostituire, e quella nuova, ad es. \\nomeserver\share da sostituire in F:\, all'interno degli hyperlinks... non dovrebbe essere difficile (per te ).
Intanto proviamo, a lunedì
jstef è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2007, 19:04   #4
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da jstef Guarda i messaggi

Ottimo, immagino che ti sia divertito anche tu

Per il momento grazie mille, Lunedì mattina torno al lavoro e ci provo senz'altro e poi ti aggiorno
Ho l'impressione che occorrerà trovare il modo di specificare la stringa da sostituire, e quella nuova, ad es. \\nomeserver\share da sostituire in F:\, all'interno degli hyperlinks... non dovrebbe essere difficile (per te ).
Intanto proviamo, a lunedì
Io, da pazzi.

In effetti al 99% ci siamo. Ovviamente al lavoro avete Office 2003 o 2007, oso sperare... Non mi dire '97 !
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2007, 19:49   #5
jstef
Senior Member
 
L'Avatar di jstef
 
Iscritto dal: Jun 2006
Città: Milano
Messaggi: 3943
Office XP quelle macro funzionano!
jstef è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2018, 15:42   #6
zio_tom53
Junior Member
 
L'Avatar di zio_tom53
 
Iscritto dal: Apr 2018
Città: Veneto
Messaggi: 7
riapro questa vecchisima discussione...
la procedura l'ho aggiornata ad i nuovi file .docx e .docm
però dovrei fare una cosa un po' diversa
vorrei ELIMINARE gli Hyperlinks dai documento Word
ho provato ad inserire h.Delete, al posto delle rinomina del link:
Codice:
For Each h In worddoc.Hyperlinks
     h.Delete
Next
in debug ci passa, li scansiona tutti, ma non li cancella
un aiuto......

PS: un libro... documentazione ecc. su VBA con Word ..... link.... libri ecc. (io uso la 2010)

Ultima modifica di zio_tom53 : 03-04-2018 alle 15:48.
zio_tom53 è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2018, 16:57   #7
zio_tom53
Junior Member
 
L'Avatar di zio_tom53
 
Iscritto dal: Apr 2018
Città: Veneto
Messaggi: 7
ho trovato questa procedura, che mi cancella gli Hyperlinks
Codice:
Sub Canc_Hyperlinks()
    With ThisDocument
        While .Hyperlinks.Count > 0
            .Hyperlinks(1).Delete
        Wend
    End With
    Application.Options.AutoFormatAsYouTypeReplaceHyperlinks = False
End Sub
vorrei però cambiare la formattazione del testo, dove c'era l'Hyperlink
dato che una volta levato l'Hyperlink, il testo torna normale e non evidenziato

Ultima modifica di zio_tom53 : 03-04-2018 alle 18:43. Motivo: errore
zio_tom53 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
BYD si gioca un grosso jolly: pronta Rac...
Samsung annuncia l'arrivo in Italia dei ...
Offerta lancio Pixel 10a: come ottenere ...
Google presenta Pixel 10a: poche le novi...
Caos F1 2026: 14 monoposto senza omologa...
Tesla festeggia il primo Cybercab prodot...
Desktop piccolo e potente? NZXT H2 Flow ...
Logan Paul vende la sua carta Pokemon &q...
Polestar spinge sull'acceleratore: arriv...
Nuovo record mondiale nel fotovoltaico: ...
L'ultimo baluardo cade: fine supporto pe...
'Il mondo non ha mai visto nulla di simi...
La Commissione europea mette sotto indag...
Arriva il primo computer quantistico ad ...
'Se lavori al PC sei a rischio': la prev...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:58.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v