Seite 1 von 1

Text per Makro einfügen

Verfasst: Sa, 15.11.2008 18:29
von Ducki
Hallo erstmal,

ich bin zum ersten Mal im Forum mit einer Frage da ich derzeit nur mit Excel gearbeitet habe.
Mein Problem ist: ich habe ein Tabellenblatt und möchte in markierten Bereichen die Zellen mit Farbe und einem Kürzel
füllen. Der Code in Excel sah so aus:

Private Sub
For Each bereich In selection
bereich.Interior.CollorIndex=33
bereich.Value = "GLz"
Next bereich
End Sub


Mein Code in Cal ist

sub subFillSelectedCells(sFill)

oController = thisComponent.CurrentController 'StarDesktop.CurrentComponent.currentController
oSelections = oController.selection

if oSelections.supportsService("com.sun.star.sheet.SheetCell") then
oSelections.CellBackColor = RGB(0, 254, 54)

elseif oSelections.supportsService("com.sun.star.sheet.SheetCellRange") then
oSelections.CellBackColor = RGB(0, 254, 54)

else
for i = 0 to oSelections.count - 1
oSelection = oSelections.getByIndex(i)
if oSelection.supportsService("com.sun.star.sheet.SheetCell") then
oSelection.setString(sFill)

else
'subFillRange(oSelection, sFill)
end if
next
end if
end sub


Das mit der Farbe klappt ganz wunderbar nur einen Text bekomme ich nicht in die Zellen. :(
Eventuell mach ich es auch zu kompliziert?

Möglicherweise hat ja einer von Euch eine Idee wie man das lösen kann.

Dank an Alle und Gruß aus Lippe

Re: Text per Makro einfügen

Verfasst: Sa, 15.11.2008 23:36
von hawe
Vielleicht solltes Du ganz einfach sauber ausformulieren was Du selektiert hast

Code: Alles auswählen

oSelections.CellBackColor = RGB(0, 254, 54) ' deck alle Selections ab
if oSelections.supportsService("com.sun.star.sheet.SheetCell") then
    oSelections.setString(sFill)
elseif oSelections.supportsService("com.sun.star.sheet.SheetCellRange") then
' da sind rows and columns mit
 oSelections.getCellByPosition(icol, irow).setString(oFill)
elseIf oSelections.supportsService("com.sun.star.sheet.SheetCellRanges") Then
'das sind mehrere SheetCellRange 
oSelections.getByIndex(i)
jeweils mit rows und columns
'BTW  .Count heisst hier .getCount()

Re: Text per Makro einfügen

Verfasst: So, 16.11.2008 23:33
von Ducki
Danke für die schnelle Antwort!

So gesehen war alles doppelt, habe leider nicht viel Ahnung von Makros.

Wie bekomme ich nun einen Text in die selektierten Zellen?

Habe es versucht mit :?

Code: Alles auswählen

sub subFillSelectedCells(sFill)

document   = ThisComponent.CurrentController.Frame
oController = thisComponent.CurrentController 'StarDesktop.CurrentComponent.currentController
oSelections = oController.selection


    oSelections.CellBackColor = RGB(0, 254, 54) 'deck alle Selections ab
       oSelections.String="Dies ist ein Text"

end sub
Das funktioniert (färben und text einfügen) jedoch nur wenn eine Zelle makiert ist. Sobald mehrere Zellen selektiert sind bekomme ich eine Fehlermeldung (Eigenschaft oder Methode nicht gefunden) :(

Wie gesagt bin nicht so vertraut mit Makros, möchte aber wegen dieser einen Datei Excel nicht installieren.

Gruss und Dank
Andreas

Re: Text per Makro einfügen

Verfasst: Mo, 17.11.2008 10:30
von hawe
Ajee,
was Sache ist hab ich in meinem Posting beschrieben und aweng Eigeninitiative möcht aber schon sein ;-).
Vielleicht nimmst Du einfach den ursprünglichen VBA Code und schreibst
Option VBASupport 1
drüber - sollte eigentlich tun...

Re: Text per Makro einfügen

Verfasst: Mo, 17.11.2008 20:19
von Ducki
Danke für die schnelle Hilfe,

jetzt funktioniert das Makro wie es sollte.
Hätte nicht gedacht das es so einfach ist. Bin halt unerfahren mit Makros.

Nochmals herzlichen Dank

Gruß
Andreas

Re: Text per Makro einfügen

Verfasst: Di, 18.11.2008 12:56
von mike6
Hallo Andreas,

kannts Du mal den kompletten Code ins Netz stellen?
Interessiert mich.


mfg
mike6