qualche mese fa mi avete aiutato a creare due macro specifiche per un modello di calcolo che ho creato per il mio lavoro. Nel frattempo ho cambiato computer e anche se ho aggiornato il percorso "file da aprire", una delle due macro non funziona più.
la macro che non funziona più (denominata Module1) serviva ad importare un file esterno dentro un foglio denominato "AusilioDatiEsterni" . Una volta importato il file, cliccando sul bottone "importa script" la macro importa alcuni dati dal foglio "ausilioDatiEsterni" nel foglio denominato "scaletta"
Sotto la macro, in allegato invece metto alcune schermate del modello creato da me e il tipo di errore che mi segnala il programma. Qualcuno di voi può aiutarmi?
grazie in anticipo
Pepper
macro:
Codice: Seleziona tutto
Sub CaricaFileDatiAvidTxt
Doc = ThisComponent
FoglioScaletta = Doc.Sheets.GetByName("Scaletta")
FoglioAusilio = Doc.Sheets.GetByName("AusilioDatiEsterni")
'=============== Gestione blocco importazione file .txt ==============================================================
FileDaAprire = ConvertToURL("file:///Utenti/gingi/Desktop/SCRIPT/file.txt" ' Esempio Percorso "LINUX" da adeguare
'FileDaAprire = "file:///C:/Utenti/gingi/Desktop/SCRIPT/file.txt" ' Esempio Percorso "Windows" da adeguare
OpzioniFiltraggio = "FIX,34,22,1,0/1/2147483647/9,0,false,false,true,false,false"
FoglioAusilio.link(FileDaAprire, "", "Text - txt - csv (StarCalc)", OpzioniFiltraggio, com.sun.star.sheet.SheetLinkMode.VALUE)
FoglioAusilio.setLinkMode(com.sun.star.sheet.SheetLinkMode.NONE)
'========================================================================================================
'STOP ' Test Verifica caricamento
Rem Ultima riga del foglio di ausilio
Cursore = FoglioAusilio.createCursor
Cursore.gotoEndOfUsedArea(false)
UltimaRiga = Cursore.RangeAddress.EndRow
Rem (0 = Riga 1) Verifica la prima Riga libera nella colonna "Location" (x accodarvi i dati)
NrRiga = 0
DO
NrRiga = NrRiga + 1
LOOP UNTIL FoglioScaletta.GetCellByPosition(5,NrRiga).String = ""
Rem Ciclo di verifica riga per riga
For Riga = 0 to UltimaRiga
Rem Cella che viene controllata ad ogni ciclo
CellaAx = FoglioAusilio.GetCellByPosition(0,Riga).String
Rem Stringa di Cinque caratteri a partire dal sesto ... sesto, settimo, ottavo, nono e decimo
NrScena = Mid(CellaAx,6,5)
Rem verifica se e' una riga di intestazione allora procedi
If Len(CellaAx) > 0 and NrScena <> " " then
Rem Inserisce la stringa di cinque caratteri sigla della scena numero di scena in scaletta
FoglioScaletta.GetCellByPosition(1,NrRiga).String = NrScena
Rem Inserisce l'intestazione corrispondente al numero di scena
FoglioScaletta.GetCellByPosition(5,NrRiga).String = right(CellaAx,Len(CellaAx)-15)
Rem Incrementa il contatore di riga
NrRiga = NrRiga +1
End if
Next
End Sub