[Risolto] aggiornare collegamenti foglio lavoro specifico

Creare una macro - Scrivere uno script - Usare le API
Rispondi
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

[Risolto] aggiornare collegamenti foglio lavoro specifico

Messaggio da chimico »

saluti ,

          Ho trovato in un altro forum la macro di sr. "Lupp" per aggiornare i collegamenti con file esterni, la macro aggiorna tutti i link esterni legati al file attivo, anche se i file esterni collegati sono chiusi .
macro: sub unoUpdateTableLinks

          la macro è molto buona per risolvere il mio problema, ma ho bisogno della macro per aggiornare solo il foglio di lavoro specifico, cioè per aggiornare i collegamenti esterni solo dal foglio di lavoro specifico .

          la macro aggiorna tutti i collegamenti esterni associati al file corrente .

          Ho bisogno della macro per aggiornare solo il foglio di lavoro specifico.

Ho bisogno della macro per aggiornare dal foglio di calcolo specifico Nome .


abbracci .
Ultima modifica di chimico il martedì 1 gennaio 2019, 19:16, modificato 8 volte in totale.
LibreOffice 5.4.4.2 no Windows 7
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

Re: macro: aggiornare i collegamenti nel foglio lavoro speci

Messaggio da chimico »

ha anche un'ottima macro di sr. "Villeroy" che può aiutare: sub refreshAllSheetLinks

ma ho bisogno di una macro per aggiornare i collegamenti esterni, dal nome del foglio di lavoro specifico che voglio aggiornare all'interno del file attivo .

La macro deve conoscere il nome del foglio di lavoro, per aggiornare solo il foglio di lavoro specifico .


abbracci .
Ultima modifica di chimico il mercoledì 19 dicembre 2018, 14:16, modificato 2 volte in totale.
LibreOffice 5.4.4.2 no Windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro: aggiornare i collegamenti nel foglio lavoro speci

Messaggio da patel »

prova questa

Codice: Seleziona tutto

Sub LinkASheet
Dim oSheets 'The sheets object that contains all of the sheets
Dim oSheet 'Individual sheet
Dim oSheetEnum 'For accessing by enumeration
Dim s As String 'String variable to hold temporary data
Dim i As Integer 'Index variable
Dim sURL As String 'URL of the document to import
Dim oLink 'The link object
sURL = "file://C:/My%20Documents/CH15/test.ods"
oSheets = ThisComponent.Sheets
479
If oSheets.hasbyName("LinkIt") Then
REM The links are available from the document object
REM based on the URL used to load them.
oLink = ThisComponent.SheetLinks.getByName(sURL)
oLink.refresh()
MsgBox "The sheet named LinkIt was refreshed"
Exit Sub
End If
REM Insert the new sheet at the end.
oSheets.insertNewByName ("LinkIt", oSheets.getCount())
oSheet = oSheets.getByName("LinkIt")
oSheet.link(sURL, "Sheet1", "", "", com.sun.star.sheet.SheetLinkMode.NORMAL)
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

Re: macro: aggiornare i collegamenti nel foglio lavoro speci

Messaggio da chimico »

saluti sr. Patel ,

Molte grazie per l'aiuto !

segue una cartella compressa con tutti i file per i test .

inoltre segue un'immagine dell'ERRORE che si è verificato durante l'esecuzione della macro .

il nome del file principale che deve essere aggiornato si chiama "Vínculos" e il foglio di lavoro che deve essere aggiornato in questo file si chiama "Planilha5" .

gli altri file sono solo per il potere .

ma voglio testare con "Planilha5" nel file "Vínculos" .

osservazione :

il percorso della cartella o della directory in cui "File5" deve aggiornare "Planilha5" è il seguente:
C:\Users\Padrao\Documents\teste A\em testes\vínculos\File5.ods


amici abbracci .
Allegati
LinkASheet.png
Files.zip
(91.28 KiB) Scaricato 192 volte
LibreOffice 5.4.4.2 no Windows 7
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

Re: macro: aggiornare i collegamenti nel foglio lavoro speci

Messaggio da chimico »

Saluti amici ,

         in macro: sub LinkASheet, il foglio di calcolo specifico viene aggiornato correttamente .

         Ma il problema è che mette i valori in cima alle formule '''file://C:/''', cioè le formule vengono sostituite dai valori dei link esterni e quindi non ci sono più formule .

         quindi vedo che la macro sub LinkASheet non è perfetta perché esclude le formule dal foglio di calcolo specifico .

citare: altro riferimento



abbracci .
Ultima modifica di chimico il mercoledì 19 dicembre 2018, 14:12, modificato 18 volte in totale.
LibreOffice 5.4.4.2 no Windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro: aggiornare i collegamenti nel foglio lavoro speci

Messaggio da patel »

chimico ha scritto:          la macro "Sub LinkASheet ... http://www.rasteredge.com/gallery/c43/2015/#RE_4, il foglio di calcolo specifico viene aggiornato correttamente .
Non capisco, mi sembra la stessa macro che ti ho consigliato io, perché questa funziona e la mia no ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

Re: macro: aggiornare i collegamenti nel foglio lavoro speci

Messaggio da chimico »

sr. Patel ,

               Sì, la macro sub LinkASheet è la stessa che mi hai consigliato .

               Sono riuscito a far funzionare anche la tua macro, ma il problema è che per eseguire l'aggiornamento dei link esterni nel foglio di lavoro specifico, la macro incolla i valori sulle formule dei link esterni, come ho spiegato nel messaggio precedente .

              la macro sub LinkASheet esclude le formule che mostrano il percorso del file esterno e posiziona i valori sopra le formule, quindi non ci sono più formule per l'aggiornamento automatico .


abbracci .
LibreOffice 5.4.4.2 no Windows 7
chimico
Messaggi: 97
Iscritto il: giovedì 22 novembre 2018, 15:20

Re: macro: aggiornare i collegamenti nel foglio lavoro speci

Messaggio da chimico »

Risolto dalla seguente procedura macro sub Update_Specific_Worksheet
LibreOffice 5.4.4.2 no Windows 7
Rispondi