Seite 1 von 1

Zellen Inhalte

Verfasst: Mi, 22.08.2007 20:17
von Bembel
Hi ihr OOo user ich brauch eure Kentnisse
Ich habe ein Makro: Zellen Inhalte Löschen aufgezeichnet .

sub Loeschen
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$14:$D$44;K14:P44"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "SVDN"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args2())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$G$54"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
dim args11(0) as new com.sun.star.beans.PropertyValue
args11(0).Name = "StringName"
args11(0).Value = "Daten am Monats Ende speichern !!!"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args11())
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
End Sub
Beim Ausführen bekomme die Fehlermeldung " Ungültiger Bereich ".
Liegt wohl an : args1(0).Value = "$C$14:$D$44;K14:P44".
Im Bereich E14:H44 sind Formel, die nicht gelöscht werden sollen.

Viele Grüße
Hartmut

Re: Zellen Inhalte

Verfasst: Do, 23.08.2007 09:00
von Hömmelmann
Hallo Hartmut,

mit dem folgenden Code müsstest du schon alles erschlagen können:

oDocument = ThisComponent
oSheet1 = oDocument.Sheets.getByIndex(0)
'Löschen Bereich C14 - D44
oQuelleRange=oSheet1.getCellRangeByPosition(2,13,4,43)
oQuellRangeAdresse = oQuelleRange.getRangeAddress
oSheet1.removeRange( oQuellRangeAdresse, com.sun.star.sheet.CellDeleteMode.UP)
'Löschen Bereich K14 - P44
oQuelleRange=oSheet1.getCellRangeByPosition(10,13,15,43)
oQuellRangeAdresse = oQuelleRange.getRangeAddress
oSheet1.removeRange( oQuellRangeAdresse, com.sun.star.sheet.CellDeleteMode.UP)
'Text in G54 einstellen
oSheet1.getcellrangebyname("G54").string = "Daten am Monats Ende speichern !!!"

Gruß, Friedhelm

Re: Zellen Inhalte

Verfasst: So, 26.08.2007 11:39
von Bembel
Hallo Friedhelm

vielen Dank für deine Unterstützung!
Ja, es geht damit . Leider werden auch Formate gelöscht.es sollten aber nur die Werte in den Zellen gelöscht werden.
Sorry : Meine Schuld hätte vorher darauf hinweisen sollen .

Viele Grüße
Hartmut

Re: Zellen Inhalte

Verfasst: So, 26.08.2007 16:44
von Toxitom
Hey Hartmut,

Zellen - und Zellbereiche - unterstützen das Interface com.sun.star.sheet.XSheetOperation und dort die Methode ClearContents(Flags). Das entspricht dem "Entf"-Button im UI.
Mit dem Flags wiederum übergibst du einen Integer-Wert für das, was gelöscht werden soll: die Werte können addiert werden ;-)

Wert - wird gelöscht
1 Werte
2 Zeit + Datumswerte
4 Texte
8 Notizen
16 Formeln
32 "Harte" Formatierungen
64 zugewiesene Zellvorlagen etc
128 Objekte
256 Formatierungen von Teilbereichen des Inhaltes

Das heissst, um "nur" die Werte (Zahlen) aus deinem Zellbereich zu löschen, nutze einfahc das:

Code: Alles auswählen

...
thisComponent.sheets(0).getCellRangeByName("C14:P44").clearContent(1+2)
...
Viele Grüße
Thomas

Re: Zellen Inhalte

Verfasst: Mo, 27.08.2007 23:22
von Bembel
Hallo Thomas
Danke für deine Antwort so sollte es sein.
Problem abgeschlossen !

Gruß
Hartmut