[Risolto] dropbox e macro con percorso relativo

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
ElPube
Messaggi: 15
Iscritto il: lunedì 19 febbraio 2018, 14:45

[Risolto] dropbox e macro con percorso relativo

Messaggio da ElPube »

Salve a tutti,

sto cercando di modificare una macro indicata da patel per renderla funzionante una volta condiviso il file in dropbox.

Il percorso del dropbox è: Dropbox\ELENCHI\CONTATTI.
In CONTATTI ci sono tutti i file da riepilogare (es. dati contatto 1.ods).
In ELENCHI c'è il file riepilogo con la macro (Riepilogo.ods).

Ho fatto varie prove con sPath e CurDir ma la macro con percorso relativo non funziona.
Potete aiutarmi con codice e sintassi?
Allegati
Riepilogo.ods
(12.2 KiB) Scaricato 89 volte
dati contatto 1.ods
(10.08 KiB) Scaricato 91 volte
Ultima modifica di ElPube il mercoledì 21 febbraio 2018, 21:50, modificato 1 volta in totale.
OpenOffice 4.1.5 su Windows 10
ElPube
Messaggi: 15
Iscritto il: lunedì 19 febbraio 2018, 14:45

Re: dropbox e macro con percorso relativo

Messaggio da ElPube »

Sto facendo varie prove ma mi rendo conto che mi manca la teoria...

Questa è l'ultima non funzionante... :(

Codice: Seleziona tutto

Sub ApriDoc_InFolder
Dim DocName as object, DocUrl as string, Parent as String, dummy()
doc = ThisComponent
sh = doc.Sheets(0)
GlobalScope.BasicLibraries.loadLibrary("Tools")
Parent = Tools.Strings.DirectoryNameoutofPath(ThisComponent.url, "/")
sPath = Parent & "\CONTATTI\"
sFileName = Dir(sPath & "*.ods", 0)
dr = 1
Do While (sFileName <> "")
  DocUrl = ConvertToURL(sPath & sFileName)
  DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
  Range = Docname.Sheets(1).getCellRangeByPosition(0,1, 8, 1).getDataArray
  dRange = Sh.getCellRangeByPosition(0,dr, 8, dr)
  dRange.setDataArray(Range) 
  dr = dr + 1  
  DocName.close(true) 
  sFileName = Dir()
Loop

End Sub
OpenOffice 4.1.5 su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: dropbox e macro con percorso relativo

Messaggio da patel »

ElPube ha scritto: Il percorso del dropbox è: Dropbox\ELENCHI\CONTATTI.
Spiega meglio questo punto
-------------------
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
ElPube
Messaggi: 15
Iscritto il: lunedì 19 febbraio 2018, 14:45

Re: dropbox e macro con percorso relativo

Messaggio da ElPube »

Ciao,

installando l'app sul pc viene creata una cartella dropbox (la cui posizione può essere scelta dall'utente) che si sincronizza con il contenuto di Dropbox online.
La cartella CONTATTI è all'interno della cartella ELENCHI che a sua volta è all'interno della cartella principale Dropbox online. Sia CONTATTI che ELENCHI sono condivise, quindi utilizzabili da tutti quelli con cui le ho condivise.
Secondo logica, per poter funzionare la macro (e il file Riepilogo.ods che la contiene e che si trova in ELENCHI) deve avere indicazioni di percorso a partire dalla posizione in cui si trova e verso la cartella CONTATTI che contiene i vari file da riepilogare (dati contatto 1.ods, dati contatto 2.ods, ecc.).

Tutte le mie varie prove per ottenere questa indicazione di percorso relativa non hanno avuto successo...
OpenOffice 4.1.5 su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: dropbox e macro con percorso relativo

Messaggio da patel »

ElPube ha scritto:Ciao,

installando l'app sul pc viene creata una cartella dropbox (la cui posizione può essere scelta dall'utente) ..
e tu quale hai scelto ? credo che il problema sia proprio il percorso completo che tu non sai indicare. Fai una ricerca in proposito
-------------------
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
ElPube
Messaggi: 15
Iscritto il: lunedì 19 febbraio 2018, 14:45

Re: dropbox e macro con percorso relativo

Messaggio da ElPube »

Grazie per l'interessamento...

Non l'ho indicato perché, appunto, è relativo, cioè sicuramente diverso da quello che hanno scelto gli altri con cui ho condiviso le cartelle.

Nel mio caso sarà C:\Users\ElPube\Dropbox\ELENCHI\CONTATTI, ma per altri sarà C:\Users\nomeproprio\Dropbox\ELENCHI\CONTATTI, oppure D:\Users\nomeproprio\Dropbox\ELENCHI\CONTATTI, oppure, strutturalmente, ancora diverso se usano Mac.
Ecco perché nella macro l'indicazione del path deve partire dalla posizione in cui si trova il file Riepilogo.ods nel momento in cui viene aperto.
OpenOffice 4.1.5 su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: dropbox e macro con percorso relativo

Messaggio da patel »

I miei complimenti, ti sei dato da fare, però l'ultimo codice che hai postato individua il percorso del file con la macro pero se provi a stamparlo con il comando print Parent ti accorgerai che non utilizza il backslash, inoltre all'inizio c'è un file:/// che non ti serve per il comando dir.
Quindi devi modificare così

Codice: Seleziona tutto

Parent = ConvertFromUrl(Tools.Strings.DirectoryNameoutofPath(ThisComponent.url, "/"))
Print Parent
-------------------
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
ElPube
Messaggi: 15
Iscritto il: lunedì 19 febbraio 2018, 14:45

Re: dropbox e macro con percorso relativo

Messaggio da ElPube »

Grazie, ora funziona a dovere!

E grazie anche per i complimenti, anche se senza il tuo aiuto ci avrei messo moolto tempo prima di arrivarci... :super:
OpenOffice 4.1.5 su Windows 10
Rispondi