🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[SOLVED] Bestimmtes Format ganzen Spalten zuweisen
-
- Beiträge: 32
- Registriert: Do 20. Jun 2013, 17:46
[SOLVED] Bestimmtes Format ganzen Spalten zuweisen
Hi!
1) Ich finde leider nicht wirklich brauchbares, um einer ganzen Spalte per Makro das Format Text "@" zuzuweisen.
2) Weiters stehe ich momentan auch damit an, das Fenster per Makro zu fixieren. Sprich, ich erzeuge ein Spreadsheet, kopiere verschiedene Spalten hinein, generiere andere dazu.
Wenn ich fertig bin, möchte ich dann dass die erste Zeile automatisch fixiert wird.
3) Wenn diese Datei/Tabelle fertig ist, soll noch abhängig von einem Statuscode in Spalte 0 die ganze Zeile rot/gelb/grün eingefärbt werden. Sprich, ich muss den Zellen eine bedingte Formatierung - auch per Makro - zuweisen.
Den großen Brocken der Aufgabe hab ich schon gelöst, an diesen paar Schönheitskorrekturen hänge ich leider noch fest, und ich würd mich unheimlich freuen, wenn ich ein paar Hinweise bekomme, wo ich weiterforschen kann. Dannehöfer hat mir da leider auch nicht weitergeholfen.
lg xundeenergie
1) Ich finde leider nicht wirklich brauchbares, um einer ganzen Spalte per Makro das Format Text "@" zuzuweisen.
2) Weiters stehe ich momentan auch damit an, das Fenster per Makro zu fixieren. Sprich, ich erzeuge ein Spreadsheet, kopiere verschiedene Spalten hinein, generiere andere dazu.
Wenn ich fertig bin, möchte ich dann dass die erste Zeile automatisch fixiert wird.
3) Wenn diese Datei/Tabelle fertig ist, soll noch abhängig von einem Statuscode in Spalte 0 die ganze Zeile rot/gelb/grün eingefärbt werden. Sprich, ich muss den Zellen eine bedingte Formatierung - auch per Makro - zuweisen.
Den großen Brocken der Aufgabe hab ich schon gelöst, an diesen paar Schönheitskorrekturen hänge ich leider noch fest, und ich würd mich unheimlich freuen, wenn ich ein paar Hinweise bekomme, wo ich weiterforschen kann. Dannehöfer hat mir da leider auch nicht weitergeholfen.
lg xundeenergie
Zuletzt geändert von xundeenergie am So 13. Apr 2014, 23:04, insgesamt 2-mal geändert.
LibreOffice
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
Re: Bestimmtes Forma ganzen Spalten zuweisen
Hallo
Warum möchtest du das alles per Makro lösen ?
2. & 3. & (1.)*** kannst du ganz prima in einer Dokumentvorlage einrichten
***nur falls immer die gleiche[n] Spalte[n] als Text formatiert werden sollen.
das VorlagenDokument musst du dann nur noch mit Daten füllen.
Karolus
Warum möchtest du das alles per Makro lösen ?
2. & 3. & (1.)*** kannst du ganz prima in einer Dokumentvorlage einrichten
***nur falls immer die gleiche[n] Spalte[n] als Text formatiert werden sollen.
das VorlagenDokument musst du dann nur noch mit Daten füllen.
Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- Beiträge: 32
- Registriert: Do 20. Jun 2013, 17:46
Re: Bestimmtes Format ganzen Spalten zuweisen
dein ansinnen ist sicher auch keine schlechte idee. jedoch ist mir das zu wenig flexibel. ich möchte das eben gern makrogesteuert erzeugen.
daher ist die frage nach dem wie, und nicht nach dem ob.
DASS es gehen müsste, hab ich mir schon zusammenreimen können aus den bisher gelesenen meldungen.
hast du eine idee?
daher ist die frage nach dem wie, und nicht nach dem ob.

DASS es gehen müsste, hab ich mir schon zusammenreimen können aus den bisher gelesenen meldungen.
hast du eine idee?
Zuletzt geändert von xundeenergie am Fr 28. Mär 2014, 12:02, insgesamt 1-mal geändert.
LibreOffice
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
Re: Bestimmtes Forma ganzen Spalten zuweisen
Hallo
Und ja bei Dannenhöfer finden sich ein Beispiel zum Thema Zahlenformat:***
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig184
das kannst du gleichermassen auch auf Zellbereiche anwenden als auch auf ganzen Spalten, zB.:
***es ist aber nicht garantiert das zb. das Zahlenformat für Text immer und überall an den gleichen Numberformat-Wert gebunden ist.
Bedingte Formatierung:
http://www.dannenhoefer.de/faqstarbasic ... rungInsert
In dem Kontext benötigst du dann auch Zellvorlagen und musst diesen Hintergrundfarben zuweisen.
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig168
Fixieren:
http://www.dannenhoefer.de/faqstarbasic ... erFixieren
Karolus
Meine "Idee" hab ich bereits kundgetan - ich bezweifle ob das "per makro" wirklich flexiber wird, und robusthast du eine idee?
Und ja bei Dannenhöfer finden sich ein Beispiel zum Thema Zahlenformat:***
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig184
das kannst du gleichermassen auch auf Zellbereiche anwenden als auch auf ganzen Spalten, zB.:
Code: Alles auswählen
sheet = thisComponent.Sheets(0) 'erstes Tabellenblatt
'folgende Varianten verweisen jeweils auf die komplette Spalte C
sheet.Columns.C
sheet.Columns.getByName("C")
sheet.Columns.getByIndex(2)
Bedingte Formatierung:
http://www.dannenhoefer.de/faqstarbasic ... rungInsert
In dem Kontext benötigst du dann auch Zellvorlagen und musst diesen Hintergrundfarben zuweisen.
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig168
Fixieren:
http://www.dannenhoefer.de/faqstarbasic ... erFixieren
Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- Beiträge: 32
- Registriert: Do 20. Jun 2013, 17:46
Re: Bestimmtes Format ganzen Spalten zuweisen
Oha... vielen Dank. Dannehöfer ist ja SEHR umfangreich... diese Seiten hab ich doch tatsächlich noch nicht (teilweise) entdeckt.
)
lg xundeenergie
Ich denken schon, denn diese Tabellen sind noch in Entwicklung und verändern sich weiter. Wenn ich Makros UND Vorformatierte Tabellen verteilen muss... ist diese Variante sicher robuster.karolus hat geschrieben:Hallo
Meine "Idee" hab ich bereits kundgetan - ich bezweifle ob das "per makro" wirklich flexiber wird, und robusthast du eine idee?
Ich will explizit nur eine Formatierung als "TEXT". Mittels Dannehöfer konnte ich rausfinden, dass der Code "100" ist und weise diesen nun der Spalte zu. Für z.B. Telefonnummer-Spalten ist Textformat angesagt, sonst gehen die führenden Nullen verloren... (Was für ein Sinnbildkarolus hat geschrieben: Und ja bei Dannenhöfer finden sich ein Beispiel zum Thema Zahlenformat:***
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig184
das kannst du gleichermassen auch auf Zellbereiche anwenden als auch auf ganzen Spalten, zB.:***es ist aber nicht garantiert das zb. das Zahlenformat für Text immer und überall an den gleichen Numberformat-Wert gebunden ist.Code: Alles auswählen
sheet = thisComponent.Sheets(0) 'erstes Tabellenblatt 'folgende Varianten verweisen jeweils auf die komplette Spalte C sheet.Columns.C sheet.Columns.getByName("C") sheet.Columns.getByIndex(2)

Die Bedingten Formatierungen bereiten mir noch Kopfzerbrechen... Aber ich werd mich durchackern.karolus hat geschrieben: Bedingte Formatierung:
http://www.dannenhoefer.de/faqstarbasic ... rungInsert
In dem Kontext benötigst du dann auch Zellvorlagen und musst diesen Hintergrundfarben zuweisen.
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig168
Super, das haut hin. Ist schon in Verwendung. Auch das hab ich bei Dannehöfer bisher noch nicht gefunden. Danke!!
lg xundeenergie
LibreOffice
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
-
- Beiträge: 32
- Registriert: Do 20. Jun 2013, 17:46
Re: Bestimmtes Format ganzen Spalten zuweisen
hab das jetzt lösen können. ich erzeuge auch per makro die formatvorlagen für die farbhinterlegung. so kann ich die stati und entsprechenden farben auch dynamisch anpassen.
den code poste ich wenns fertig ist.
vielen dank nochmal für den schubs in die richtige richtung.
den code poste ich wenns fertig ist.
vielen dank nochmal für den schubs in die richtige richtung.
LibreOffice
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
-
- Beiträge: 32
- Registriert: Do 20. Jun 2013, 17:46
Re: Bestimmtes Format ganzen Spalten zuweisen
Ich hab jetzt die Bedingte Formatierung SO gelöst:
In meinem Makro kommt diese Sequenz vor. Damit belege ich die Stati mit Farben. Dieser Teil wird später noch in ein Konfigurationsfile ausgelagert und dann beim Aufruf eingelesen.
oWorkFile und oSheetWorkfile sind mit
belegt.
fnNewDoc ist eine Funktion, welche ein neues Spreadsheet erzeugt.
Damit lege ich die bedingte Formatierung mit Makro fest. Die Formatvorlage wurde wie schon erwähnt mit dem Makro eins weiter oben erzeugt.
Jetzt wird das neu erzeugte Arbeitsfile mit den richtigen Spalten befüllt, Zusatzspalten eingefügt und mit Titel versehen, die Titelzeile wird fixiert und es werden die ganzen Zeilen entsprechend dem Statuscode der ersten Spalte bunt eingefärbt.
Genauso wollte ich das haben.
Vielen Dank für die entpsrechenden Hinweise.
xundeenergie
In meinem Makro kommt diese Sequenz vor. Damit belege ich die Stati mit Farben. Dieser Teil wird später noch in ein Konfigurationsfile ausgelagert und dann beim Aufruf eingelesen.
oWorkFile und oSheetWorkfile sind mit
Code: Alles auswählen
oMyWorkfile = fnNewDoc("scalc")
oSheetWorkfile = oMyWorkFile.sheets(0)
oWorkFile = thisComponent
fnNewDoc ist eine Funktion, welche ein neues Spreadsheet erzeugt.
Code: Alles auswählen
REM - Workfile mit bedingter Formatierung nach Status belegen
Dim Status(6,2)
Status(0,0) = "a"
Status(0,1) = "&H99FF66"
Status(0,2) = "Auftrag erteilt"
Status(1,0) = "g"
Status(1,1) = "&HFFFF99 "
Status(1,2) = "Auftrag gesendet"
Status(2,0) = "v"
Status(2,1) = "&H66FF66"
Status(2,2) = "Auftrag verbessert senden"
Status(3,0) = "ne"
Status(3,1) = "&HFFFF00"
Status(3,2) = "Nicht erreicht - nochmal kontaktieren"
Status(4,0) = "ki"
Status(4,1) = "&H808080"
Status(4,2) = "Kein Interesse - nicht wieder kontaktieren"
Status(5,0) = "en"
Status(5,1) = "&H666666"
Status(5,2) = "Existiert nicht (mehr)"
Status(6,0) = "gv"
Status(6,1) = "&HFFFF99"
Status(6,2) = "Gesendet verbessert"
for i = 0 to UBound(Status)
sFormTemName = "Status " & Status(i, 0)
CellVorlage(sFormTemName, Status(i, 1),oWorkFile)
EinfuegenConditionalFormCell(Status(i, 0),oSheetWorkFile)
next
Code: Alles auswählen
REM - Für bedingte Formatierungen müssen Formatvorlagen erstellt werden.
sub CellVorlage(sName,sColor,oDoc)
'Dim oDoc as object
' oDoc = ThisComponent
Dim vParaStyles
cellStyles = oDoc.StyleFamilies.getByName("CellStyles")
if not cellStyles.hasByName(sName) then
Dim vStyle2
vStyle2 = oDoc.createInstance("com.sun.star.style.CellStyle")
cellStyles.insertByName(sName, vStyle2)
with vStyle2
.CellBackColor = sColor
' .CharColor = RGB(222, 222, 222)
.ParentStyle = "Standard"
' .CharFontName = "Arial"
end with
end if
end sub
Code: Alles auswählen
Sub EinfuegenConditionalFormCell(sStat,Sheet)
Dim oCell as Object
Dim oConditionalForm as Object
'oCell = ThisComponent.Sheets(0).getCellRangeByPosition(0,0,26,31999)
oCell = Sheet.getCellRangeByPosition(0,0,26,31999)
oConditionalForm = oCell.ConditionalFormat
Dim oCondition(3) as New com.sun.star.beans.PropertyValue
oCondition(0).Name = "Operator"
oCondition(0).Value = com.sun.star.sheet.ConditionOperator.FORMULA
oCondition(1).Name = "Formula1"
oCondition(1).Value = "$a1 = " & chr(34) & sStat & chr(34)
oCondition(2).Name = "StyleName"
oCondition(2).Value = "Status " & sStat
oConditionalForm.addNew( oCondition() )
oCell.ConditionalFormat = oConditionalForm
End Sub
Jetzt wird das neu erzeugte Arbeitsfile mit den richtigen Spalten befüllt, Zusatzspalten eingefügt und mit Titel versehen, die Titelzeile wird fixiert und es werden die ganzen Zeilen entsprechend dem Statuscode der ersten Spalte bunt eingefärbt.
Genauso wollte ich das haben.

Vielen Dank für die entpsrechenden Hinweise.
xundeenergie
LibreOffice
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
-
- Beiträge: 32
- Registriert: Do 20. Jun 2013, 17:46
Re: Benutzerdefinierten Formatstring ganzen Spalten zuweisen
Einen bestimmten Formatierungscode einer ganzen Spalte zuweisen hab ich so lösen können:
Damit bekommt die Spalte D das Zahlenformat, mit dem ein Tausenderpunkt und zwei Stricherl nach dem Komma dargestellt werden. z.B. "3.425,--"
Ich wollt das nur noch der Community zurückgeben, falls es noch jemand sucht.
Code: Alles auswählen
Dim NumberFormats as Object
Dim NumberFormatString as String
Dim LocalSettings As New com.sun.star.lang.Locale
Dim NumberFormatId As Long
oMyWorkfile = fnNewDoc("scalc")
oSheetWorkfile = oMyWorkFile.sheets(0)
oWorkFile = thisComponent
NumberFormats = oWorkFile.NumberFormats
NumberFormatString = "#.##0," & chr(34) & "--" & chr(34)
LocalSettings.Language = "de"
LocalSettings.Country = "at"
'oWorkFile.Numberformats.addNew(NumberFormatString, LocalSettings)
NumberFormatId = NumberFormats.queryKey(NumberFormatString, LocalSettings, True)
If NumberFormatId = -1 Then
NumberFormatId = NumberFormats.addNew(NumberFormatString, LocalSettings)
End If
oSheetWorkFile.Columns(3).Numberformat = NumberFormatId
Ich wollt das nur noch der Community zurückgeben, falls es noch jemand sucht.

LibreOffice
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
Version: 4.1.4.2 Build-ID: 410m0(Build:2) auf Debian Wheezy mit Backports
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.