ho una macro che mi consente di archiviare alcuni dati su un file esterno in una cartella condivisa con altri utenti. Dovendo assegnare una numerazione progressiva comune a tutti gli utenti (per evitare duplicazioni) ho pensato di aggiungere una colonna al file "Protocollo" (esattamente la colonna A) nella quale ho inserito una formula che aumenta progressivamente la numerazione ogni volta che viene riempita la riga a partire dalla colonna B. Il tutto funzionerebbe se non ci fosse un problema che non riesco a risolvere: quando cerca la prima riga libera va a scrivere i dati nella prima riga dopo quella occupata dall'ultima formula e quindi non mi fa la numerazione progressiva che volevo ma solo l'archiviazione. In pratica, supponendo un file "Protocollo" di 50 righe dove ho inserito la formula per la numerazione progressiva, mi va a scrivere dalla riga 51 in avanti dove non trova la formula nella colonna A. Quale istruzione potrei usare per fare iniziare la ricerca della prima riga vuota dalla colonna B invece che dalla A?
Trascrivo di seguito copia della macro per rendere più facile la comprensione del problema.
Grazie mille. Buona serata.
Codice: Seleziona tutto
Sub Archivio
Dim DocName as object, DocUlr as string, dummy(), range as object
Doc = ThisComponent
Sheet = Doc.Sheets(5) ' 6° foglio del file contenente la macro
Range = Sheet.getCellRangeByName("B7:K7").getDataArray ' range da copiare
sFileName ="C:\Users\Lenovo\Desktop\Protocollo.ods" ' file di destinazione
DocUrl = ConvertToURL(sFileName)
DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
Protocollo = DocName.Sheets(0)
Cursore = Protocollo.createCursor
Cursore.gotoEndOfUsedArea(false)
UltimaRiga = Cursore.RangeAddress.EndRow
Riga = UltimaRiga + 2
dRange = Protocollo.getCellRangeByName("B" & Riga & ":K" & Riga) ' range di destinazione (PrimaRigaLibera)
dRange.setDataArray(Range)
DocName.store
DocName.Close(true)
End Sub
