einzelne Zelle per Makro formatieren (Basic), OOo 2.0.2

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: einzelne Zelle per Makro formatieren (Basic), OOo 2.0.2

von sascha11 » Do, 13.04.2006 14:04

hat sich erledigt- habe es jetzt über die SDK gelöst

Danke für deine Hilfe!!

von sascha11 » Do, 13.04.2006 11:59

danke erstmal für deinen Code- nur, ich habe noch nie mit Funktionen gearbeitet, wie rufe ich jetzt die Funktion auf, so geht es schonmal nicht:

oT5.getCellRangeByName(Bereichvariabel)=Fett()
oT5.getCellRangeByName(Bereichvariabel).Fett()

Danke!

Sascha

von pmoegenb » Do, 13.04.2006 11:45

Hallo Sascha,

OK. Hier ein Beispielcode für eine Zelle in Fett:

Code: Alles auswählen

function Fett()
   oZell = thisComponent.getcurrentSelection()
   if not oZell.supportsService("com.sun.star.sheet.SheetCell") then
       msgbox "Bitte nur eine Zelle markieren (aktivieren)!", 48, "Fehler!"
       exit function
   end if
   oZell.CharWeight = com.sun.star.awt.FontWeight.BOLD
end function

von sascha11 » Do, 13.04.2006 11:03

hi Peter,

das soll aber in mein Makro rein, weil ich weiß ja vorher nicht, an welcher Stelle jetzt unterstrichen werden soll und an welcher Stelle nicht und es ist einfach viel Text, der unterstrichen werden soll und daher ist das manuell einfach unpraktisch, deshalb muss ich die Zellvorlage ja irgendwie jetzt in meinem Makro der entsprechenden Zelle zuweisen können, z. Bsp.: oT5.getCellRangeByName(Bereichvariabel-> hier steht die Zelladresse drin)=Zellvorlage_FettundUnterstrichen

Danke,

Sascha

von pmoegenb » Do, 13.04.2006 10:54

Hallo Sascha,

Du benötigst kein Makro hierfür. Zelle anklicken die anders formatiert werden soll und Seitenvorlage anklicken.

Verwende doch einfach die vorhandenen Bordmittel von OO.

von sascha11 » Do, 13.04.2006 10:43

also die Zellvorlage habe ich mit F11 und neue Zellvorlage erstellt- nur wie ordne ich sie denn jetzt zu in meinem Makro?

dann brauche ich mal deine Hilfe

von sascha11 » Do, 13.04.2006 10:38

hi Peter,

danke für deine Informationen- das ist genau das, was ich suche.
Nun habe ich noch ein paar Fragen, da ich so nicht weiterkomme:
Wo in Calc kann ich diese Zellvorlage "Fett und Unterstrichen" definieren?
also Dim Zellvorlage1 as Object??
Zellvorlage1 = Fett, Unterstrichen
Wie ordne ich Sie meiner Zelle in Basic dann zu?
also oT5.getCellRangeByName(A9)=Zellvorlage1 "Fett und Unterstrichen"
Kannst du den entsprechenden Code posten?
Ich kann ihn dann meinem Makro entspr. anpassen...

Ich habe leider noch immer kein Grundlagenbuch gekauft und muss daher auf die Onlinehilfe zurückgreifen.

Danke,

Sascha

von pmoegenb » Do, 13.04.2006 10:18

sascha11 hat geschrieben:nichts- es soll ja in ein Makro (Basic in Calc) eingebaut werden, da muss ich Zellen formatieren, die Position ist variabel, deshalb kann ich das nicht über eine Formatvorlage realisieren...
Hallo Sascha,

Zellvorlagen werden für einzelne Zellen angewandt, deswegen heißen sie auch so. Als Unterlassungswert ist den Zellen die Zellvorlage Standard zugeordnet. Du kannst z. B. aus dieser Zellvorlage eine neue Zellvorlage mit dem Namen Fett ableiten und als Schriftschnitt Fett hinterlegen.

Wenn Du nach dem Anlegen dieser Zellvorlage z. B. der Zelle B3 die Zellvorlage Fett zuordnest wird die Schrift fett. Alle anderen Zellen bleiben unverändert, denn diesen ist nach wie vor die Zellvorlage Standard zugeordnet.

leider komme ich mit Handbuch nicht weiter

von sascha11 » Do, 13.04.2006 09:31

hey!

diesen Code habe ich im Handbuch gefunden und ihn angepasst, leider komme ich so nicht weiter, da ich von Fehlermeldung überhäuft werde, ich habe Doc sowie sheets definiert, oft fehlen auch Syntaxteile, wie nach
.shee oder die Eigenschaft bei Flags = com.sun.star.sheet.
Die Methode clearContents vereinfacht den Vorgang des Löschens von
Zellinhalten und Zellbereichen, indem sie einen bestimmten Inhaltstyp aus einem
Zellbereich löscht.
Das folgende Beispiel entfernt alle Zeichenfolgen sowie die direkten
Formatierungsinformationen aus dem Bereich B2:C3.
Dim Doc
As Object Dim Sheet
As Object Dim CellRange
As Object Dim Flags
As Long
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName('B2:C3')
Flags = com.sun.star.sheet.
CellFlags.STRING + _ com.sun.star.shee
CellFlags.HARDATTR
CellRange.clearContents(Flags)
Kann jemand helfen- außerdem benötige ich noch die Methoden, um Zellen zu unterstreichen sowie als fett zu markieren, im Programmierhandbuch finde ich nur die, um die Hintergrundfarbe zu definieren.

Danke!

Sascha

von sascha11 » Do, 13.04.2006 08:33

nichts- es soll ja in ein Makro (Basic in Calc) eingebaut werden, da muss ich Zellen formatieren, die Position ist variabel, deshalb kann ich das nicht über eine Formatvorlage realisieren...

danke!

Sascha

Re: und dann einen Zellbereich wiederk komplett löschen

von pmoegenb » Mi, 12.04.2006 16:09

sascha11 hat geschrieben:... und anschließend einen Zellbereich wieder komplett löschen, incl. aller Formatierungen
Hallo Sascha,

erklär mir mal bitte, was das mit Zellvorlagen zu tun hat.

und dann einen Zellbereich wiederk komplett löschen

von sascha11 » Mi, 12.04.2006 13:59

... und anschließend einen Zellbereich wieder komplett löschen, incl. aller Formatierungen

Danke!

Sascha

von pmoegenb » Mi, 12.04.2006 13:58

Hallo Sascha,

weshalb nicht über Formatvorlagen ? Einfach eine neue Formatvorlage von Standard ableiten und entsprechend anpassen. Bei geöffnetem Stylisten genügt dann ebenfalls ein einfacher Mausklick.

einzelne Zelle per Makro formatieren (Basic), OOo 2.0.2

von sascha11 » Mi, 12.04.2006 13:15

hey!

ich möchte eine Zelle per Makro in Basic automatisiert formatieren, hierzu brauche ich die Befehle für
- Fett
- Unterstreichen

Danke!

Sascha

Nach oben