Seite 1 von 1
wie kann ich mit Basic-Code rechnen??
Verfasst: So, 18.12.2005 13:12
von der.milco
Hallo,
ich suche heute eine Möglichkeit mit dem Code von Basic einfache Rechenoperationen durchzuführen.
Bsp-weise sollen zwei Numerische Felder miteinander addiert werden.
Oder auch die Zellen eines Arbeitsblattes in Calc.
Hat jemand ne Idee?
einfach +, -, * oder / zwischen die Kontrollfeldbezeichnungen zu schreiben bringt nichts.
Und kann ich eigentlich auch die < und > -Funktionen verwenden?
Danke
Verfasst: So, 18.12.2005 14:24
von Stephan
Bsp-weise sollen zwei Numerische Felder miteinander addiert werden
...
einfach +, -, * oder / zwischen die Kontrollfeldbezeichnungen zu schreiben bringt nichts
Ich weiß nicht, soll es das heißen was Du schreibst? Denn das ginge natürlich nicht, weil:
ein Feld ist ein Objekt, die Bezeichnung des Feldes lediglich dessen Name also der Wert einer Eigenschaft, nur Beides ist nicht der numerische Wert, der ist <Objekt>.Value und der muß addiert werden
Und kann ich eigentlich auch die < und > -Funktionen verwenden?
Ja. (aber das sind (Vergleichs-)Operatoren und keine Funktionen)
Gruß
Stephan
Verfasst: So, 18.12.2005 14:29
von ykcim
Hi,
Du darfst die Rechenoperation mit dem Kontrollfeld versuchen sondern mit dem Inhalt des Kontrollfeldes. Eventuell mußt Du den Wert erst in eine Zhal wandeln.
Bei eines Textfeld z.B. mit Zahl1=Val(Kontrollfeld.text)
Für Zellen gilt das ebenso. Gerechent wird mit dem Inhalt einer Zelle.
Zahl1=Zelle.value
Weitere Infos findest Du in der FAQ von mir.
mfg
Michael Dannenhöfer
Verfasst: Mo, 19.12.2005 13:20
von der.milco
So, habs probiert und es klappt.
(dabei dachte ich ich hätte das schon ausprobiert...)
_______________________________________________________
Zitat:
Und kann ich eigentlich auch die < und > -Funktionen verwenden?
Ja. (aber das sind (Vergleichs-)Operatoren und keine Funktionen)
Ich weiß, aber die funktionieren bei mir nicht richtig:
Code: Alles auswählen
Sub Rechnen
myDoc = thisComponent
mySheet = myDoc.sheets(2)
myForm = mySheet.drawpage.forms(0)
' myCell1 = mySheet.getCellRangeByName("$J$7")
myCtl1 = myForm.getByName("NumericField1")
myCtl2 = myForm.getByName("NumericField2")
' msgbox myCtl1.value > myCtl2.value
if myCtl1.value > myCtl2.value then
msgbox "true"
else
msgbox "false"
end if
End Sub
Egal, ob ich mir gleich die MsgBox anzeigen lasse, oder das erst mit IF überprüfe: in der MsgBox steht immer true.
Völlig gleich, welche Werte in den NumFeldern stehen...
Jmd ne Lösung??
Verfasst: Mo, 19.12.2005 15:25
von Toxitom
Hey Milco,
Egal, ob ich mir gleich die MsgBox anzeigen lasse, oder das erst mit IF überprüfe: in der MsgBox steht immer true.
Völlig gleich, welche Werte in den NumFeldern stehen...
Hmm, das dürfte mit der internen Struktur und der automatischen Variablen-Erkennung zu tun haben.
Vergleichsoperatoren können nur Ergebnisse (also Variableninhalte) vergleichen, nicht selbst erst Rechenwege ausführen. Also:
Entweder ziehst du die Ergebnisse raus :
oder du entkoppelst die Rechenoperationen:
In beiden Fällen erhälst du dein gewünschtes Ergebnis.
Gruss
Thomas