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
wie kann ich mit Basic-Code rechnen??
Moderator: Moderatoren
Ich weiß nicht, soll es das heißen was Du schreibst? Denn das ginge natürlich nicht, weil:Bsp-weise sollen zwei Numerische Felder miteinander addiert werden
...
einfach +, -, * oder / zwischen die Kontrollfeldbezeichnungen zu schreiben bringt nichts
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
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
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
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
FAQ zu Starbasic -> http://www.starbasicfaq.de
So, habs probiert und es klappt.
(dabei dachte ich ich hätte das schon ausprobiert...)
_______________________________________________________
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??
(dabei dachte ich ich hätte das schon ausprobiert...)
_______________________________________________________
Ich weiß, aber die funktionieren bei mir nicht richtig:Ja. (aber das sind (Vergleichs-)Operatoren und keine Funktionen)Zitat:
Und kann ich eigentlich auch die < und > -Funktionen verwenden?
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
Völlig gleich, welche Werte in den NumFeldern stehen...
Jmd ne Lösung??
Hey Milco,
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
Hmm, das dürfte mit der internen Struktur und der automatischen Variablen-Erkennung zu tun haben.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...
Vergleichsoperatoren können nur Ergebnisse (also Variableninhalte) vergleichen, nicht selbst erst Rechenwege ausführen. Also:
Entweder ziehst du die Ergebnisse raus :
Code: Alles auswählen
a = myCtl1.value
b = myCtl2.value
if a > b then.
...
Code: Alles auswählen
if ( myCtl1.value ) > ( myCtl2.value) then
...
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic