[Risolto] Macro riepiloga più righe, cross-platform

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

[Risolto] Macro riepiloga più righe, cross-platform

Messaggio da ElPube »

Salve,

lo scenario è ..\ELENCHI\CONTATTI, in elenchi c'è il file Riepilogo.ods e in contatti ci sono i diversi file da riepilogare.
Non riesco a modificare la seguente macro per ottenere in Riepilogo.ods l'elenco nelle colonne A e B delle 18 righe dei file contatti (la riga intestazione si deve ripetere per ogni contatto):

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")
sDocURL = ThisComponent.getURL()
sPercorso = ConvertFromURL(sDocURL)
sNome = FileNameOutOfPath(sDocURL)
sCartella = DirectoryNameoutofPath(sPercorso, GetPathSeparator())
sottoCartella = "CONTATTI"
sPath = sCartella & GetPathSeparator() & sottoCartella & GetPathSeparator()
sFileName = Dir(sPath & "*.ods", 0)
print sFileName
dr = 0
Do While (sFileName <> "")
  DocUrl = ConvertToURL(sPath & sFileName)
  print DocUrl
  DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
  Range = Docname.Sheets(2).getCellRangeByPosition(0,0, 1, 17).getDataArray
  dRange = Sh.getCellRangeByPosition(0,dr, 1, dr)
  dRange.setDataArray(Range)
  dr = dr + 17
  DocName.close(true)
  sFileName = Dir()
Loop

End Sub
Faccio confusione con i range...

P.S. Nella prima parte ho aggiunto un po' di chiamate a titolo di studio per cercare di generalizzare ulteriormente il path e rendere la macro funzionante anche su Mac; non ho però la possibilità di provare se funziona...
Allegati
contatto 1.ods
(14.11 KiB) Scaricato 97 volte
Riepilogo.ods
(11.01 KiB) Scaricato 93 volte
Ultima modifica di charlie il domenica 8 aprile 2018, 10:35, modificato 2 volte in totale.
Motivazione: Aggiunta spunta verde
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: Macro riepiloga più righe, cross-platform

Messaggio da patel »

non ho capito bene cosa cambia rispetto alla precedente discussione che sembrava risolta
-------------------
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: Macro riepiloga più righe, cross-platform

Messaggio da ElPube »

Ciao,

questa è la precedente macro funzionante a cui avevo solo aggiunto il getpathseparator per testare se funzionava anche su Mac:

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")
sDocURL = ThisComponent.getURL()
print sDocUrl
sPercorso = ConvertFromURL(sDocURL)
print sPercorso
sNome = FileNameOutOfPath(sDocURL)
print sNome
sCartella = DirectoryNameoutofPath(sPercorso, GetPathSeparator())
print sCartella
sottoCartella = "CONTATTI"
sPath = sCartella & GetPathSeparator() & sottoCartella & GetPathSeparator()
print sPath
sFileName = Dir(sPath & "*.ods", 0)
print sFileName
dr = 1
Do While (sFileName <> "")
  DocUrl = ConvertToURL(sPath & sFileName)
  print DocUrl
  DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
  Range = Docname.Sheets(1).getCellRangeByPosition(0,1, 14, 1).getDataArray
  dRange = Sh.getCellRangeByPosition(0,dr, 14, dr)
  dRange.setDataArray(Range) 
  dr = dr + 1  
  DocName.close(true) 
  sFileName = Dir()
Loop

End Sub
Questa macro riepilogava solo le seconde righe (per 13 colonne) di tutti i file.

Ora invece mi serve che riepiloghi 18 righe (per 2 colonne) di tutti i file.
Così nel Riepilogo.ods ho tutto quello che mi serve vedere per tutti i contatti, in sole 2 colonne e 18 righe per contatto.
Solo che non riesco a dare i nuovi range...
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: Macro riepiloga più righe, cross-platform

Messaggio da patel »

non testato

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")
sDocURL = ThisComponent.getURL()
print sDocUrl
sPercorso = ConvertFromURL(sDocURL)
print sPercorso
sNome = FileNameOutOfPath(sDocURL)
print sNome
sCartella = DirectoryNameoutofPath(sPercorso, GetPathSeparator())
print sCartella
sottoCartella = "CONTATTI"
sPath = sCartella & GetPathSeparator() & sottoCartella & GetPathSeparator()
print sPath
sFileName = Dir(sPath & "*.ods", 0)
print sFileName
dr = 1
Do While (sFileName <> "")
  DocUrl = ConvertToURL(sPath & sFileName)
  print DocUrl
  DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
  Range = Docname.Sheets(1).getCellRangeByPosition(0,0, 1, 17).getDataArray ' range da copiare
  dRange = Sh.getCellRangeByPosition(0,dr, 1, dr+17) ' range destinazione
  dRange.setDataArray(Range) 
  dr = dr + 18  
  DocName.close(true) 
  sFileName = Dir()
Loop

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
ElPube
Messaggi: 15
Iscritto il: lunedì 19 febbraio 2018, 14:45

Re: Macro riepiloga più righe, cross-platform

Messaggio da ElPube »

Grazie patel,

la macro in windows funziona senza problemi.
Devo solo farla testare su OO per Mac...
OpenOffice 4.1.5 su Windows 10
Pacifico Bacocco
Messaggi: 7
Iscritto il: martedì 13 marzo 2018, 21:48

Re: archiviare fatture

Messaggio da Pacifico Bacocco »

vorrei archiviare le fatture in una cartella archivio con una macro con OpenOffice calc 4.1.1 non riesco come posso fare mi potete dare una dritta
OpenOffice 4.1.1
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro riepiloga più righe, cross-platform

Messaggio da patel »

Apri una tua discussione con titolo adeguato, allega un file di esempio con dati e spiegazioni
-------------------
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: Macro riepiloga più righe, cross-platform

Messaggio da ElPube »

Ho testato su OO per Mac e funziona.
Posso quindi taggare come risolto.
OpenOffice 4.1.5 su Windows 10
Rispondi