Seite 1 von 1

Ausgeblendete Zellen nicht kopieren

Verfasst: Mi, 15.06.2011 10:03
von duffman521
Hallo Forengemeinde,

in letzter Zeit wurde ich des öfteren angesprochen ob an in OpenOffice ausgeblendete Spalten bzw. Zeilen beim Kopieren auslassen kann.
Die ausgeblendeten Zellen sind meist über "Format -> Zeile/Spalte -> ausblenden" ausgeblendet.

Im Forum und im Netz habe ich leider nur negative Einträge zu älteren Versionen gefunden.
Momentan habe ich versucht die ausgeblendeten Zellen zu schützen bzw. auszublenden und diese dann über Inhalt einfügen herrauszufiltern. Leider ohne Erfolg.

Falls es eine Möglichkeit zum ignorieren der ausgeblendeten Zellen gibt würde mich über eine praktikable Lösung freuen.

Grüße

duffman521

Re: Ausgeblendete Zellen nicht kopieren

Verfasst: Mi, 15.06.2011 10:47
von bst
Morgen,

über den Autofilter ausgeblendete Zeilen werden hier in LibreoOffice 3.4 nicht mit kopiert.

Für manuell ausgeblendete Zeilen versuche mal so etwas Ähnliches.

Kopiert nicht ausgeblendete Zeilen von Tabelle1 nach Tabelle2.

HTH, Bernd
--

Code: Alles auswählen

REM  *****  BASIC  *****

Sub CopyVisibleLines
   oDocument = ThisComponent
   oSheet1 = oDocument.Sheets.getByIndex(0)
   oSheet2 = oDocument.Sheets.getByIndex(1)
   for i = 0 to getLastLine(oSheet1)
      if oSheet1.Rows(i).IsVisible Then
         oSrcRange = oSheet1.getCellRangeByPosition(0,i,255,i).getRangeAddress
         oDstCell  = oSheet2.getCellByPosition(0,j).getCellAddress
         oSheet2.copyRange(oDstCell, oSrcRange)
         j = j + 1
      endif
   next
End Sub

Function getLastLine(oSheet as Object) as Long
   oController = ThisComponent.currentController
   oCursor = oSheet.createCursor()
   oCursor.goToEndOfUsedArea(false)
   getLastLine = oCursor.getRangeAddress().endRow
End Function

Re: Ausgeblendete Zellen nicht kopieren

Verfasst: Mi, 15.06.2011 11:47
von duffman521
Hallo bst

danke für den Hinweis und das Makro.

Der Autofilter hilft leider nicht bei allen Tabellen.

Zu dem Makro hätte ich eine kleine Frage.
Ist es Möglich nur einen markierten Bereich zu verwenden anstatt einem festgelegtem Bereich?

Gruß

duffman521

Re: Ausgeblendete Zellen nicht kopieren

Verfasst: Mi, 15.06.2011 11:58
von bst
Hi duffman521,

so vielleicht?

Ändere ggf. die Anzahl der Spalten ab, siehe Kommentar.

cu, Bernd
--

Code: Alles auswählen

REM  *****  BASIC  *****

Sub CopyVisibleLinesInSelection
   oDocument = ThisComponent
   oSheet1 = oDocument.currentController.ActiveSheet
   oSheet2 = oDocument.Sheets.getByIndex(1)
   oSel = oDocument.getCurrentSelection().RangeAddress
   iColumns = 255 ' oder = oSheet1.Columns.Count oder = oSel.EndColumn
   for i = oSel.StartRow to oSel.EndRow
      if oSheet1.Rows(i).IsVisible Then
         oSrcRange = oSheet1.getCellRangeByPosition(0,i,iColumns,i).getRangeAddress
         oDstCell  = oSheet2.getCellByPosition(0,j).getCellAddress
         oSheet2.copyRange(oDstCell, oSrcRange)
         j = j + 1
      endif
   next
End Sub