Basic erkennt zahlen nicht richtig

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Basic erkennt zahlen nicht richtig

von Toxitom » So, 09.07.2006 12:48

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

von LSH_Dackel » So, 09.07.2006 12:06

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?

von Toxitom » So, 09.07.2006 10:25

Hey Dackel,

wundert mich, dass du überhaupt hier ein Ergebnis erhälst.

Code: Alles auswählen

zelle.Value 
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

von LSH_Dackel » Sa, 08.07.2006 19:10

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

von Toxitom » Sa, 08.07.2006 17:48

Hey Dackel,
Kann mir da jemand weiterhelfen?
Na, dann lass mal den Code sehn. Wie anders sollen wir dir sonst helfen?

Gruss
Thomas

Basic erkennt zahlen nicht richtig

von LSH_Dackel » Sa, 08.07.2006 16:41

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!

Nach oben