Seite 1 von 1

Farbige Zellen zählen + auswerten

Verfasst: Do, 09.02.2006 11:28
von Mikosch
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

Niemand?

Verfasst: Do, 09.02.2006 17:35
von Mikosch
Kann mir denn niemand wenigstens ansatzweise weiter helfen??

Verfasst: Do, 09.02.2006 17:48
von Toxitom
Hey Mikosch,
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!
Das ist sehr einfach :wink:

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
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:

Code: Alles auswählen

=MyGebDat()
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

Verfasst: Do, 09.02.2006 17:49
von Lenu
Farben kannst Du nicht in Form von Bedingungen in Funktionen integrieren. Aber offenbar wechseln die Farben aufgrund einer Bedingung. Also müsstest Du ja diese Bedingung irgendwie formulieren können. Das scheint mir der Ansatz.
Aber das müsste alles konkreter sein, wenn man zu etwas raten soll.

Danke erstmal für die Erklärung

Verfasst: Fr, 10.02.2006 12:09
von Mikosch
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.

Re: Danke erstmal für die Erklärung

Verfasst: Fr, 10.02.2006 14:02
von Karolus
Hallo Mikosch
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.
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 :

(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

Verfasst: Fr, 10.02.2006 14:19
von Mikosch
[quote]Du brauchst gar keine Extraspalte und kannst doch deine Statis als Ziffer in die Zellen schreiben[/quote]
Nein, leider nicht, denn in dieser Zelle mit Hintergrundfarbe stehen ja meine "Inventory-Numbers".

Hab ich mich vielleicht bißchen doof ausgedrückt bislang? Sorry!

DANKE EUCH!