Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Macro Calc LibreOffice
#1
buongiorno 

spero di aver preso la sezione corretta

io avrei bisogno di una macro che mi legga diversi file xls e ods nella stessa cartella come esempi allegati e mi estragga la cella H8 ( dove c'è il calcolo degli straordinari) e mi copi i dati come in "risultato macro.ods" e dopo mi faccia la differenza tra i due file col nome simile come si vede in "risultato macro.ods" allego anche un esempio dei file della cartella

spero di essermi spiegato correttamente


Allegati
.ods   01.2016 Conti Luca.ods (Dimensione: 60,92 KB / Download: 5)
.xls   01.2016 Conti Luca x invio.xls (Dimensione: 16 KB / Download: 2)
.txt   DirPrnInfo.txt (Dimensione: 1,27 KB / Download: 3)
.ods   risultato macro.ods (Dimensione: 8,94 KB / Download: 2)
.xls   01.2016 Scaramella Roberta x invio.xls (Dimensione: 16 KB / Download: 1)
.ods   01.2016 Scaramella Roberta.ods (Dimensione: 58,52 KB / Download: 1)
.xls   03.2016 Conti Luca x invio.xls (Dimensione: 17 KB / Download: 0)
Cita messaggio
Grazie da:
#2
ti dispiace allegare altri due nomi ?
Cita messaggio
Grazie da:
#3
ho aggiunto qualche altro file controlla il primo post se vuoi ne aggiungo altri
Cita messaggio
Grazie da:
#4
prova questa macro, i file da leggere devono essere tutti in una cartella (modifica il percorso), quello del risultato in una cartella separata

Codice:
Sub ApriFile
Dim dummy()
Doc = ThisComponent
Sheet = Doc.Sheets(0)
sPath ="C:\percorso\" ' <<<<<<<<<< da modificare
sFileName = Dir(sPath & "*.*", 0)
r=1
n=1
Do While (sFileName <> "")
  DocUrl = ConvertToURL(sPath & sFileName)
  DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
  Sheet.getCellByPosition(0,r).String = sFileName
  Range = DocName.sheets(0).getCellRangeByName("H8").getDataArray
  dRange  =  Sheet.getCellByPosition(1,r)
  dRange.setDataArray(Range)  
  DocName.close(true)
  r=r+1
  n=n+1
  if n mod 2 = 1 then
    Sheet.getCellByPosition(0,r).String = "Differenza"
    Sheet.getCellByPosition(1,r).value = Sheet.getCellByPosition(1,r-2).value - Sheet.getCellByPosition(1,r-1).Value
    r=r+2
  end if
  sFileName = Dir()
Loop

End Sub
Veedrai aprirsi e chiudersi tutti i file, non ti preoccupare, se tutto funziona poi risolviamo questo punto
Cita messaggio
Grazie da:


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)