Hallo!
Nach reichlich stöbern im Archiv und im Netz insgesamt komme ich trotzdem nicht recht voran. Vielleicht könnt ihr mir ja helfen.
Gegeben ist eine Arbeitsmappe mit 2 Tabellenblättern.
In der Tabelle 1 befinden sich in Spalte A Nummern die je nach Status eine unterschiedliche Hintergrundfarbe besitzen. Diese Hintergrundfarben ändern sich täglich.
Diese Statis (max. 5) möchte ich in Tabelle 2 auswerten in Form von Zahlen und einem Diagramm.
Ich habe hier im Forum auch ähnliche Dinge gefunden und auch etwas zu benutzerdefinierten Funktionen. Diese Vorschläge hier hab ich auch versucht anzuwenden bzw. abzuändern. Leider ohne Erfolg und Unmengen an Fehlermeldungen.
Daher wäre außerdem eine wirklich detailierte Erklärung wie ich denn die benutzerdefinierten Funktion überhaupt in OO 2.0 einbinden kann sehr nett!
Ich danke Euch von Herzen!
Mikosch
Farbige Zellen zählen + auswerten
Moderator: Moderatoren
Hey Mikosch,
Zuerst musst du dir diese "benuterdefinierte" Formel erstelle - und zwar im Bereich "Meine Makros - Standard" (Nur dieser Ort ist akzeptabel!)
Dazu gehst du auf Extras - Makros - Makros verwalten - OpenOffice.org Basic... und wählst dann links Meine Makros -> Standard . Klicke auf das Pluszeichen, dann siehst du die bereits vorhandenen Module (mindestens eins sollte da sein - Module1) Markiere dies, wähle ein Makro in der mittleren Spalte (mindestens "Main" steht dort) und klicke auf Bearbeiten. Die Basic-IDE öffnet sich.
Jetzt schreibst du deine Funktion. Hier ein Beispiel:
Funktionen haben einen Rückgabewert, dieser Wert wird in der letzten Zeile dem Funktionsnamen zugewiesen.
Brauchst du keinen Rückgabewert (eher unwahrscheinlich) kannst du das natürlich weglassen. Die Funktion oben macht nichts anderes, als das als String übergebene Datum in ein internes Datumsformat umzuwandeln und zurückzuliefern.
Das war es. Speichern -> Testen.
Jetzt gibst du in eine Zelle ein:
Das angezueigte ERgebnis sollte sein: 02.02.1985 - je nach lokaler Einstellung.
Das ist das Prinzip der benutzerdefinierten Funktionen.
Natürlich kannst du diese auch ausbauen und Parameter übergeben, diese dann verarbeiten etc. Aber das ist dann der nächste Schritt
Viele Grüße
Thomas
Das ist sehr einfachDaher wäre außerdem eine wirklich detailierte Erklärung wie ich denn die benutzerdefinierten Funktion überhaupt in OO 2.0 einbinden kann sehr nett!

Zuerst musst du dir diese "benuterdefinierte" Formel erstelle - und zwar im Bereich "Meine Makros - Standard" (Nur dieser Ort ist akzeptabel!)
Dazu gehst du auf Extras - Makros - Makros verwalten - OpenOffice.org Basic... und wählst dann links Meine Makros -> Standard . Klicke auf das Pluszeichen, dann siehst du die bereits vorhandenen Module (mindestens eins sollte da sein - Module1) Markiere dies, wähle ein Makro in der mittleren Spalte (mindestens "Main" steht dort) und klicke auf Bearbeiten. Die Basic-IDE öffnet sich.
Jetzt schreibst du deine Funktion. Hier ein Beispiel:
Code: Alles auswählen
function MyGebDat
MyGebDat = CDate("02.02.1985")
end function
Brauchst du keinen Rückgabewert (eher unwahrscheinlich) kannst du das natürlich weglassen. Die Funktion oben macht nichts anderes, als das als String übergebene Datum in ein internes Datumsformat umzuwandeln und zurückzuliefern.
Das war es. Speichern -> Testen.
Jetzt gibst du in eine Zelle ein:
Code: Alles auswählen
=MyGebDat()
Das ist das Prinzip der benutzerdefinierten Funktionen.
Natürlich kannst du diese auch ausbauen und Parameter übergeben, diese dann verarbeiten etc. Aber das ist dann der nächste Schritt
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Danke erstmal für die Erklärung
Danke erstmal für die Erklärung!
Ich vermute ich komme am besten und sichersten, wenn ich nicht Farben für die Statis verwende sondern eine Extra-Spalte mit Nummern zwischen 1 und 5. Dann stellt das Auswerten kein Problem dar.
Trotzdem danke Euch erstmal!
@Lenu: Die Bedingungen für den Farbwechsel brauche ich nicht formulieren - der Farbwechsel wird manuell durchgeführt. Mir geht es wie gesagt nur um die Auswertbarkeit von den Zellen mit Hintergrundfarbe.
Ich vermute ich komme am besten und sichersten, wenn ich nicht Farben für die Statis verwende sondern eine Extra-Spalte mit Nummern zwischen 1 und 5. Dann stellt das Auswerten kein Problem dar.
Trotzdem danke Euch erstmal!
@Lenu: Die Bedingungen für den Farbwechsel brauche ich nicht formulieren - der Farbwechsel wird manuell durchgeführt. Mir geht es wie gesagt nur um die Auswertbarkeit von den Zellen mit Hintergrundfarbe.
Re: Danke erstmal für die Erklärung
Hallo Mikosch
(das Original ist hier kürzlich von Stephan gepostet worden, Danke !)
Sub FarbAenderung_3()
oSelect=ThisComponent.CurrentSelection
oColumn=oselect.Columns
oRow=oSelect.Rows
For n= 0 To oColumn.getCount-1
For m = 0 To oRow.getCount-1
oCell=oselect.getCellByPosition (n, m)
Select Case oCell.String
Case ""
oCell.CellBackColor = -1
Case "1"
oCell.CellBackColor = RGB(0,102, 204)
Case "2"
oCell.CellBackColor = RGB(0,102, 204)
Case "3"
oCell.CellBackColor = RGB(250,255, 102)
Case "4"
oCell.CellBackColor = RGB(0,174, 0)
Case "5"
oCell.CellBackColor = RGB(255,153, 102)
Case "6"
oCell.CellBackColor = RGB(255,51, 51)
End Select
next
next
End Sub
Hier musst du nur noch die RGB-werte an deinen Geschmack anpassen, und den Zellbereich mit den Statis vor dem Starten selektieren.
Gruß
Karo
Du brauchst gar keine Extraspalte und kannst doch deine Statis als Ziffer in die Zellen schreiben die du bisher mit Farben markiert hast. Die farbige Markierung kannst du dir abhängig von der Statusziffer von folgendem Makro erledigen lassen :Mikosch hat geschrieben:Danke erstmal für die Erklärung!
Ich vermute ich komme am besten und sichersten, wenn ich nicht Farben für die Statis verwende sondern eine Extra-Spalte mit Nummern zwischen 1 und 5. Dann stellt das Auswerten kein Problem dar.
(das Original ist hier kürzlich von Stephan gepostet worden, Danke !)
Sub FarbAenderung_3()
oSelect=ThisComponent.CurrentSelection
oColumn=oselect.Columns
oRow=oSelect.Rows
For n= 0 To oColumn.getCount-1
For m = 0 To oRow.getCount-1
oCell=oselect.getCellByPosition (n, m)
Select Case oCell.String
Case ""
oCell.CellBackColor = -1
Case "1"
oCell.CellBackColor = RGB(0,102, 204)
Case "2"
oCell.CellBackColor = RGB(0,102, 204)
Case "3"
oCell.CellBackColor = RGB(250,255, 102)
Case "4"
oCell.CellBackColor = RGB(0,174, 0)
Case "5"
oCell.CellBackColor = RGB(255,153, 102)
Case "6"
oCell.CellBackColor = RGB(255,51, 51)
End Select
next
next
End Sub
Hier musst du nur noch die RGB-werte an deinen Geschmack anpassen, und den Zellbereich mit den Statis vor dem Starten selektieren.
Gruß
Karo