Formeln und deren Ausgabetext unterscheiden

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

LSH_Dackel
***
Beiträge: 53
Registriert: Do, 05.01.2006 17:40

Formeln und deren Ausgabetext unterscheiden

Beitrag von LSH_Dackel »

Hi Leute,

ich hab in ner Calc Tabelle eine Formel stehen die nen
Text ausgibt wenn allle Zellen eines Bereichs leer sind und sonst deren Mittelwert Berechnet.
z.B.:

Code: Alles auswählen

=WENN(ANZAHLLEEREZELLEN(C2:R2)=16;"keine Note";PRODUKT(SUMME(C2:R2);1/SUMME(16;-ANZAHLLEEREZELLEN(C2:R2))))
Nun soll mein Makro bei bestimmten Werten den Hintergrund der Zellen
einfärben. Das tut es auch aber da der Text ("keine Note") den Wert "0" hat
und dieser auch als Zahlenwert erscheinen kann wird dieser auch rot
eingefärbt und bei get.formula schaut er sich die gesamte Formel (wie oben) an und die is ja net nur "keinen Note".
Also hier is erstma der code.


Code: Alles auswählen

...
For c = 1 to 2 
for d = 1 to 4
zelle = oSheet.getCellByposition(d, c) 

if zelle.getformula() = "keine Note" then 
      r = 255: g = 255: b = 255 
else 
select case zelle.Value 
   case >= 12.5
      r = 0: g = 174: b = 0
   case >= 9.5
      r = 138: g = 255: b = 0
   case >= 6.5
      r = 230: g = 255: b = 0
   case >= 3.5
      r = 255: g = 218: b = 0
   case >= 1.0
      r = 255: g = 138: b = 0   
   case >= 0
      r = 255: g = 0: b = 0 
      
End select 
end if
zelle.CellBackcolor = RGB(r,g,b) 
next d
next c
...
Meine frage is nu:

Wie kann mein makro erkennen das grad der Text ("keine Note") Ausgegeben wird?

THX im vorraus



http://lshdackel.ls.funpic.de/
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Code: Alles auswählen

'...
if zelle.String = "keine Note" then 
      r = 255: g = 255: b = 255 
'...
Gruß
Stephan
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

Ich häng mich mal hier rein, und biete eine "makrofreie Formellösung" an:


=WENN(ANZAHLLEEREZELLEN(C2:R2)=16;"keine Note";PRODUKT(SUMME(C2:R2);1/SUMME(16;-ANZAHLLEEREZELLEN(C2:R2)))+VORLAGE(SVERWEIS(AKTUELL());'irgendwo';2;1))

'irgendwo' ist der Platzhalter für den Bereich einer kleinen Hilfstabelle mit dem Inhalt :

0 |vor1
1 |vor2
3,5 |vor3
6,5|vor4
9,5|vor5
12,5|vor6

Die Zellvorlagen "vor1" bis "vor6" müssen dann auch noch erstellt werden.

Gruß Karo
LSH_Dackel
***
Beiträge: 53
Registriert: Do, 05.01.2006 17:40

Beitrag von LSH_Dackel »

Danke Stephan jetz fuzts :D
Antworten