Sub Search_ID
Dim LB
Dim oCell
Dim oFilterDesc
Dim oTextBox
Dim oFields(0) As New com.sun.star.sheet.TableFilterField2
Sheet = ThisComponent.Sheets(1)
oTextBox = oDialogo2.getControl("TextField3")
LB = oDialogo2.getControl("ListBox1")
LB.removeItems(0,LB.getItemCount())
Daric = UCase(oTextBox.Text)
c = Sheet.createCursor
c.gotoEndOfUsedArea(false)
LastRow = c.RangeAddress.EndRow + 1
CellRange = Sheet.getCellRangeByName("B2:B" & LastRow)
oFilterDesc = CellRange.createFilterDescriptor(True)
With oFields(0)
.Field = 0
.Operator = com.sun.star.sheet.FilterOperator2.BEGINS_WITH
.StringValue = Daric
End With
oFilterDesc = CellRange.createFilterDescriptor(True)
With oFilterDesc
.ContainsHeader = False
.CopyOutputData = False
.FilterFields2 = oFields()
End With
CellRange.filter(oFilterDesc)
ranges = CellRange.queryVisibleCells()
If Ubound(ranges.RowDescriptions) > -1 Then
ReDim Arr(0 To Ubound(ranges.RowDescriptions))
Dim a(0 To Ubound(ranges.RowDescriptions))
For Each oCell in ranges.Cells
Arr(x) = oCell.CellAddress.Row
a(x) = oCell.DataArray(0)
x = x +1
Next
Dati = a
svc = createUnoService("com.sun.star.sheet.FunctionAccess")
Dati1 = svc.callFunction("TRANSPOSE", Array(a))
LB.getModel.StringItemList = Dati1(0)
End if
'Call RemoveSheetFilter()
End sub
Cosa intendi per copiare riga per riga tramite lastrow ? lastrow non è una funzione né un metodo, ma il nome di una variabile usata da qualcuno per indicare l'ultima riga di un foglio
-------------------
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
Mi spiego meglio. Nella Sheet 1 sono presenti i dati filtrati tramite la macro che ti ho postato prima. Vorrei sapere se esiste una macro che mi permette di copiare i dati filtrati nella Sheet 1 e incollarli nella Sheet 4. Ovviamente mano a mano che filtro i dati e poi li incollo nel foglio 4, nel foglio 4 deve tenere in considerazione l'ultima riga scritta per continuare ad incollare i dati successivi.
Grazie mille
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui