einzelne Zelle per Makro formatieren (Basic), OOo 2.0.2

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

einzelne Zelle per Makro formatieren (Basic), OOo 2.0.2

Beitrag von sascha11 »

hey!

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

Danke!

Sascha
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

und dann einen Zellbereich wiederk komplett löschen

Beitrag von sascha11 »

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

Danke!

Sascha
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: und dann einen Zellbereich wiederk komplett löschen

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

Beitrag von sascha11 »

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
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

leider komme ich mit Handbuch nicht weiter

Beitrag von sascha11 »

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
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

dann brauche ich mal deine Hilfe

Beitrag von sascha11 »

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
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

Beitrag von sascha11 »

also die Zellvorlage habe ich mit F11 und neue Zellvorlage erstellt- nur wie ordne ich sie denn jetzt zu in meinem Makro?
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

Beitrag von sascha11 »

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
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

Beitrag von sascha11 »

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
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

Beitrag von sascha11 »

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

Danke für deine Hilfe!!
Antworten