REM ***** BASIC ***** Sub FilterCopy oSel = thisComponent.getCurrentSelection nRows = oSel.getRows.count oCells = oSel.getRangeAddress oSheet = thisComponent.getSheets.getByIndex(oCells.Sheet) oSource = oCells 'we need to copy from the first row of the selection 'so we change the range using only the first row oSource.EndRow = oSource.StartRow 'set up a status bar to monitor progress oStatus = thisComponent.CurrentController.StatusIndicator oStatus.start("Filtered Copy... Working...",nRows) iRow = 0 while (iRow < nRows) thisCell = oSel.getCellByPosition(0,iRow) oTarget = thiscell.getCellAddress if not(thisCell.getRows.IsFiltered) then oSheet.copyRange(oTarget, oSource) end if iRow = iRow + 1 oStatus.setvalue(iRow) wend oSel.getCellByPosition(0,0) oStatus.end End Sub