von MASP47 » Do, 09.06.2022 09:17
Liebes Forum!
Ich möchte per Makro aus einer Spalte alle Werte in eine neue Tabelle kopieren, die nicht leer sind. Dafür hab ich auch ein funktionierendes Makro:
Code: Alles auswählen
Sub NullenRausFiltern
oSheet = ThisComponent.Sheets.getByName("Daten")
sRange = "E2:E1000"
oSourceRange = oSheet.getCellRangeByName(sRange)
ThisComponent.Sheets.getByName("REFilter").getCellRangeByName("A1:B1000").clearContents(1023)
Dim oFields(0) As New com.sun.star.sheet.TableFilterField
oFields(0).Field=0
oFields(0).IsNumeric = True
oFields(0).Operator = com.sun.star.sheet.FilterOperator.NOT_EMPTY
oFilterDesc = oSourceRange.createFilterDescriptor(True)
oFilterDesc.setFilterFields(oFields())
oFilterDesc.SkipDuplicates = False
oFilterDesc.IsCaseSensitive = False
oFilterDesc.ContainsHeader = True
oFilterDesc.CopyOutputData = True
oFilterDesc.OutputPosition = ThisComponent.Sheets.getByName("REFilter").getCellRangeByName("A1").cellAddress
oSourceRange.Filter(oFilterDesc)
End Sub
Das hat bisher wie gesagt ganz gut funktioniert, allerdings waren bisher nur Zahlenwerte in den Zellen des Quellbereichs. Das hat sich nun geändert, das heißt, ich habe Formeln im Quellbereich, die entweder einen Zahlenwert aus geben oder "leer" bleiben. Jetzt meine Frage, wie muss ich das Makro ändern, damit erstens nur die Zahlenwerte kopiert werden und zweitens die "leeren" Zeilen nicht mitkopiert werden?
Vielen Dank im Voraus und lieben Gruß,
Andi
Liebes Forum!
Ich möchte per Makro aus einer Spalte alle Werte in eine neue Tabelle kopieren, die nicht leer sind. Dafür hab ich auch ein funktionierendes Makro:
[code]
Sub NullenRausFiltern
oSheet = ThisComponent.Sheets.getByName("Daten")
sRange = "E2:E1000"
oSourceRange = oSheet.getCellRangeByName(sRange)
ThisComponent.Sheets.getByName("REFilter").getCellRangeByName("A1:B1000").clearContents(1023)
Dim oFields(0) As New com.sun.star.sheet.TableFilterField
oFields(0).Field=0
oFields(0).IsNumeric = True
oFields(0).Operator = com.sun.star.sheet.FilterOperator.NOT_EMPTY
oFilterDesc = oSourceRange.createFilterDescriptor(True)
oFilterDesc.setFilterFields(oFields())
oFilterDesc.SkipDuplicates = False
oFilterDesc.IsCaseSensitive = False
oFilterDesc.ContainsHeader = True
oFilterDesc.CopyOutputData = True
oFilterDesc.OutputPosition = ThisComponent.Sheets.getByName("REFilter").getCellRangeByName("A1").cellAddress
oSourceRange.Filter(oFilterDesc)
End Sub
[/code]
Das hat bisher wie gesagt ganz gut funktioniert, allerdings waren bisher nur Zahlenwerte in den Zellen des Quellbereichs. Das hat sich nun geändert, das heißt, ich habe Formeln im Quellbereich, die entweder einen Zahlenwert aus geben oder "leer" bleiben. Jetzt meine Frage, wie muss ich das Makro ändern, damit erstens nur die Zahlenwerte kopiert werden und zweitens die "leeren" Zeilen nicht mitkopiert werden?
Vielen Dank im Voraus und lieben Gruß,
Andi