Quer und Längsfarbstreifen in einem Bereich

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

JtfF
**
Beiträge: 25
Registriert: So, 24.03.2013 08:32

Quer und Längsfarbstreifen in einem Bereich

Beitrag von JtfF »

Ich beiße mir schon seit 2 Tagen die Zähne an diesem "einfachen" Problem aus.
Es ist schon 10 Jahre her das ich mal was im VBA programmiert habe.

Bin vor 4 Jahren auf Apple 10.6.8 umgestiegen und benutze Neooffice 3.1.2

Die theoretischen "Grobheiten" sind mir noch bekannt. ich scheitere aber schon an den einfachsten Sachen wie ich den meine Tabelle deklariere.

Mit Makrorekorder funkt es aber um die Sache übersichtlicher zu machen und wider ins Programmieren zu kommen benötige ich eure Hilfe.

Mit Makrorekorder sehr unübersichtlich da ja keine Schleifen verwendet werden. Ich habe in diesem Fall aber nur zwei Spalten genommen. eigentlich sind es 50.

Code: Alles auswählen

sub V_Streifen
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$BA$4:$BA$103"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "BackgroundColor"
args2(0).Value = 15132415

dispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$BC$4:$BC$103"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "BackgroundColor"
args4(0).Value = 15132415

dispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$BA$2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
end sub
Ich scheitere schon am Syntax an der Declaration
oZelle = oTabellenblatt.getCellByPosition( 0, 0 )
ich habe leider nichts gefunden das man mit diesen Befehl CellByposition((0,0) ; (1,1)) den Array den ich benötige irgendwie ansprechen kann. Dann könnte ich über eine Schleife die weiteren Spalten anspringen (Zähler auf 2 Setzen)
Habe nur das Ansprechen über ("A1:B2") diese Art gefunden oder eben nur eine Zelle ansprechen über diese Variante (0,0)

Interessanterweise bekomme ich auch bei Beispielen die ich von eurer Seite OpenOffice.info kopiere immer wider Laufzeitfehler. Bin nur noch frustriert. bitte um Hilfe!

Danke Josef!


Tags [​code]…[​/code] eingefügt und Thema verschoben nach OOo Basic und Java, wo alle Themen zur Basic-Programmierung hingehören.—lorbass, Mod
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Quer und Längsfarbstreifen in einem Bereich

Beitrag von F3K Total »

Hallo,
eigentlich gehört dein Beitrag in die Rubrik "OOo Basic und Java", ein handelt sich ja nicht um eine Datenbank.
Hier Dein aufgenommenes Makro, mal selbst getippt:

Code: Alles auswählen

sub V_Streifen_neu
   osheet = Thiscomponent.sheets.getbyname("Tabelle1")
   orange = osheet.getcellrangebyposition(52,3,52,102) ' Spalte,Zeile,Spalte,Zeile jeweils oben links und unten rechts vom Bereich, beginnend mit Spalte 0 und Zeile 0
   orange.CellBackColor = 15132415
   orange = osheet.getcellrangebyposition(54,3,54,102)
   orange.CellBackColor = 15132415
end sub
Allerdings kannst Du zum spaltenweisen Einfärben lieber die bedingte Formatierung verwenden.
Sie Beispiel anbei.
Gruß R
Dateianhänge
Bedingte_Formatierung.ods
(8.42 KiB) 50-mal heruntergeladen
JtfF
**
Beiträge: 25
Registriert: So, 24.03.2013 08:32

Re: Quer und Längsfarbstreifen in einem Bereich

Beitrag von JtfF »

Danke für die Hilfe werde esgleich ausprobieren ;-)
JtfF
**
Beiträge: 25
Registriert: So, 24.03.2013 08:32

Re: Quer und Längsfarbstreifen in einem Bereich

Beitrag von JtfF »

Funktioniert! Alerdings benötigt es über 6 Sekunden bis es ausgeführt ist.
Habe ein MacBook pro 17 Zoll etwas älter als ein Jahr. Letztes OSX.

Neooffice 3.2.1

Das Worksheet ist recht unangreich. Weniger von der Größe sonder eher von der Anzahl der Formekn und Bedingten Formatierung. Kann es ja späer anhängen da ich es in der Arbeit habe und gerade vom Handy antworte.


Liebe Grüße

Josef
Antworten