Seite 1 von 1
Basic erkennt zahlen nicht richtig
Verfasst: Sa, 08.07.2006 16:41
von LSH_Dackel
Moin
durch mein makro sollen Zellen mit bestimmtem Zahlenwert bestimmte hintergrundfarben erhalten(z.B. 12,5-15 grün und 0,5-3,5 orange).
Mein Problem ist nun dass das makro die Zahlen nicht richtig erkennt (z.B. 12,69 ist orange).
Kann mir da jemand weiterhelfen? Vielen Dank schon ma im vorraus!
Verfasst: Sa, 08.07.2006 17:48
von Toxitom
Hey Dackel,
Kann mir da jemand weiterhelfen?
Na, dann lass mal den Code sehn. Wie anders sollen wir dir sonst helfen?
Gruss
Thomas
Verfasst: Sa, 08.07.2006 19:10
von LSH_Dackel
Ok hier hast du den code
Code: Alles auswählen
Sub FarbigeNoten1
dim document as object
Dim oSheets as Object
Dim oSheet as Object
Dim zelle as Object
oSheets = ThisComponent.Sheets
oSheet = oSheets.getByName("12_1")
x = 0: y = 0
For i = 2 to 17
For j = 1 to 4
zelle = oSheet.getCellByposition(i, j)
select case zelle.Value
case "0"
r = 255: g = 255: b = 255
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 >= "0,5"
r = 255: g = 138: b = 0
case >= "0"
r = 255: g = 0: b = 0
End select
zelle.CellBackcolor = RGB(r,g,b)
next j
next i
end sub
Verfasst: So, 09.07.2006 10:25
von Toxitom
Hey Dackel,
wundert mich, dass du überhaupt hier ein Ergebnis erhälst.
liefert dir immer einen numerischen Wert - der, der drin steht. Deine weiter Select-Anweisung vergleicht diesen jetzt mit einem String - das passt nie!
es müsste heissen:
Code: Alles auswählen
select case zelle.Value
case 0
r = 255: g = 255: b = 255
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 >= 0.5
r = 255: g = 138: b = 0
case > 0
r = 255: g = 0: b = 0
End select
Dezimalstellen werden in Basic durch einen Punkt getrennt!
So sollte es funktionieren.
Gruss
Thomas
Verfasst: So, 09.07.2006 12:06
von LSH_Dackel
Danke Toxitom das funktioniert soweit gut
aber ich habe noch eine frage wie kann ich zwischen einer Leerzelle und
einer Zelle in der ein Wert von 0 bist 0,5 steht unterscheiden?
Verfasst: So, 09.07.2006 12:48
von Toxitom
Hey Dackel,
wie kann ich zwischen einer Leerzelle und
einer Zelle in der ein Wert von 0 bist 0,5 steht unterscheiden?
Na ja, eine Leerzelle ist "leer", und wenn eine "0" oder irgendetwas anderes drin steht, ist sie eben nicht mehr leer.
Das kannst du über die Funktion getType() heraus bekommen. Liefert diese Funktion Null ("0") zurück, ist sie "leer", bei "1" enthält sie Werte (Zahlen), bei "2" Text und bei "3" eine Formel. So kannst du das auslesen:
Code: Alles auswählen
if zelle.getType() = 0 then
'Zelle ist leer
'....
else
'Zelle ist nicht leer
'...
end if
Gruss
Thomas