copia ed accoda verticalment
copia ed accoda verticalment
ciao
é possibile con una macro copiare un gruppo di celle (es. Foglio1.A10:Z200 o meglio da A10:fino a colonna Z tutte le righe con dati ) ed incollarle accodandole in un altro foglio (es. Foglio2.dalla prima riga colonna A vuota)
grazie
é possibile con una macro copiare un gruppo di celle (es. Foglio1.A10:Z200 o meglio da A10:fino a colonna Z tutte le righe con dati ) ed incollarle accodandole in un altro foglio (es. Foglio2.dalla prima riga colonna A vuota)
grazie
openoffice 4 su win 10
Re: copia ed accoda verticalment
Magari posta un file d'esempio con il risultato voluto.
...se sei soddisfatto delle risposte ricevute metti il [Risolto] https://forum.openoffice.org/it/forum/v ... f=9&t=5661
Libreoffice 6/7 Ubuntu 22.04 - PcLinuxOS - LinuxMint 21
Libreoffice 6/7 Ubuntu 22.04 - PcLinuxOS - LinuxMint 21
Re: copia ed accoda verticalment
ciaogioh66 ha scritto:Magari posta un file d'esempio con il risultato voluto.
ecco il file
grazie della tua attenzione
- Allegati
-
- prova copia incolla.ods
- (13.4 KiB) Scaricato 101 volte
openoffice 4 su win 10
Re: copia ed accoda verticalment
prova questa
Codice: Seleziona tutto
sub copia
Dim Doc As Object, Sheet As Object, range As Object, CellAddress
Dim I As Integer, ActiveCell as object, RIGA as integer, colA as integer
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Sheet1 = Doc.Sheets(1)
Do While Sheet.getCellByPosition(0, LastRow).String <> ""
LastRow = LastRow + 1
Loop
c = Sheet1.createCursor
c.gotoEndOfUsedArea(false)
LastRow1 = c.RangeAddress.EndRow + 2
Range =Sheet.getCellRangeByPosition(0, 1, 25, LastRow - 1).getRangeAddress()
CellAddress = Sheet1.getCellRangeByName("A" & LastRow1 ).getCellAddress()
Sheet.copyRange(CellAddress, Range)
Sheet.getCellRangeByPosition(0, 1, 25, LastRow).clearcontents(31)
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
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
Re: copia ed accoda verticalment
Grazie Patel
Funziona alla perfezione, Ho aggiunto anche il cancellare alcune celle ed il cursore posizionarsi in A1.
Ho riscontrato però un problema (che per mio errore non ho detto) alcune colonne sono protette e con formule.
Se tolgo la protezione per errore possono essere modificate e con la macro venire cancellate.
E' possibile cancellare solo alcune colonne?
Grazie
Funziona alla perfezione, Ho aggiunto anche il cancellare alcune celle ed il cursore posizionarsi in A1.
Ho riscontrato però un problema (che per mio errore non ho detto) alcune colonne sono protette e con formule.
Se tolgo la protezione per errore possono essere modificate e con la macro venire cancellate.
E' possibile cancellare solo alcune colonne?
Grazie
Codice: Seleziona tutto
sub copia
'sub eliminaContenuti
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$AB$14"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "SVD"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$AB$15"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Flags"
args4(0).Value = "SVD"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$AB$16"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVD"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "$AB$17"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args7())
rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "Flags"
args8(0).Value = "SVD"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args8())
Dim Doc As Object, Sheet As Object, range As Object, CellAddress
Dim I As Integer, ActiveCell as object, RIGA as integer, colA as integer
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Sheet1 = Doc.Sheets(1)
Do While Sheet.getCellByPosition(0, LastRow).String <> ""
LastRow = LastRow + 1
Loop
c = Sheet1.createCursor
c.gotoEndOfUsedArea(false)
LastRow1 = c.RangeAddress.EndRow + 2
Range =Sheet.getCellRangeByPosition(0, 1, 25, LastRow - 1).getRangeAddress()
CellAddress = Sheet1.getCellRangeByName("A" & LastRow1 ).getCellAddress()
Sheet.copyRange(CellAddress, Range)
Sheet.getCellRangeByPosition(0, 1, 25, LastRow).clearcontents(31)
'rem ---------------------------------------------------------------------
'dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
End Sub
openoffice 4 su win 10
Re: copia ed accoda verticalment
per cancellare la colonna C
Codice: Seleziona tutto
Sheet.getCellRangeByPosition(2, 1, 2, LastRow).clearcontents(31)
-------------------
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
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
Re: copia ed accoda verticalment
La macro, con le modifiche (grazie Patel), funziona perfettamente.
Ho riscontrato un problema: se la prima cella da copiare è vuota si blocca
Grazie dell'aiuto.
Ho riscontrato un problema: se la prima cella da copiare è vuota si blocca
Grazie dell'aiuto.
openoffice 4 su win 10
Re: copia ed accoda verticalment
allega un file di esempio con i dati e l'ultimo codice, oppure lancia la macro con F8, step by step e controlla dove si blocca
-------------------
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
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