BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗
Rechnen via Makro
Rechnen via Makro
Hallo zusammen,
Meine Makro-Praxis ist schon sehr lange her. Kann mir bitte jemand den Quellcode für folgendes Beispiel mitteilen (Den Rest dürfte ich selber schaffen, aber der Anfang fällt mir sehr schwer, welche Klassen/Objekte/Variablen wie deklarieren/definieren, Zeilen ansprechen etc...)?
Ich möchte mit dem drücken des Buttons die Zahlen aus der Spalte B in Spalte D addieren. Nach zweimaligen Betätigen des Buttons würde das obere Ergebnis herauskommen. Nach drei mal:
3
6
9
usw...
Vielen, vielen lieben Dank vorab!!!
Andrej
Meine Makro-Praxis ist schon sehr lange her. Kann mir bitte jemand den Quellcode für folgendes Beispiel mitteilen (Den Rest dürfte ich selber schaffen, aber der Anfang fällt mir sehr schwer, welche Klassen/Objekte/Variablen wie deklarieren/definieren, Zeilen ansprechen etc...)?
Ich möchte mit dem drücken des Buttons die Zahlen aus der Spalte B in Spalte D addieren. Nach zweimaligen Betätigen des Buttons würde das obere Ergebnis herauskommen. Nach drei mal:
3
6
9
usw...
Vielen, vielen lieben Dank vorab!!!
Andrej
Re: Rechnen via Makro
Hallo Andrej,
Code: Alles auswählen
REM ***** BASIC *****
Sub Berechnen
Dim oDoc as Object
Dim oSheet as Object
Dim mArr1 as Variant
Dim i as Long
' Referenz: aktuelles Dokument
oDoc=ThisComponent
' Referenz: Tabellenblatt 1
oSheet=oDoc.Sheets().getByIndex(0)
' ODER
' oSheet=oDoc.Sheets().getByName("Tabelle1")
'Zeilen- und Spaltenzählung beginnt immer bei 0. So ist 0,0 = Zelle A1
'[in] long nLeft, [in] long nTop, [in] long nRight, [in] long nBottom )
' Array mit Daten des Zellbereichs füllen
mArr1()=oSheet.getCellRangeByPosition(1,1,3,3).getDataArray()
For i = 0 to 2
' Berechneten Wert in Spalte D schreiben
' [in] long nColumn, [in] long nRow )
oSheet.getCellByPosition(3,i+1).Value= mArr1(i)(2)+mArr1(i)(0)
next i
End Sub
Gruß
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Re: Rechnen via Makro
Als erstes vielen Dank für die schnelle Antwort!
Habe noch eine weiter Frage im Rahmen meines „Projekts“:
Ich lasse Zufallswerte in mehreren Zellen berechnen (via „Shift+Strg+F9“) bis deren Summe („B2“) eine max. Abweichung von 5% vom Basiswert ergibt. Ich habe ein Makro aufgezeichnet und versucht eine Schleife um diese Aufzeichnung herumzubasteln, komme allerdings nicht weiter...
sub Zufall
dim document as object
dim dispatcher as object
Dim oDoc as Object
Dim oSheet as Object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
oDoc=ThisComponent
oSheet=oDoc.Sheets().getByIndex(0)
oCellA2 = oSheet.getCellrangeByName("A2")
oCellB2 = oSheet.getCellrangeByName("B2")
dispatcher.executeDispatch(document, ".uno:CalculateHard", "", 0, Array())
While ((oCellA2.value / oCellB2.value)< (0,95 * oCellA2.value) OR (oCellA2 / oCellB2.value)> (1,05 * oCellA2.value))
dispatcher.executeDispatch(document, ".uno:CalculateHard", "", 0, Array())
Wend
end sub
Kann mir da bitte jemand helfen?
Vielen Dank!!!
Habe noch eine weiter Frage im Rahmen meines „Projekts“:
Ich lasse Zufallswerte in mehreren Zellen berechnen (via „Shift+Strg+F9“) bis deren Summe („B2“) eine max. Abweichung von 5% vom Basiswert ergibt. Ich habe ein Makro aufgezeichnet und versucht eine Schleife um diese Aufzeichnung herumzubasteln, komme allerdings nicht weiter...
sub Zufall
dim document as object
dim dispatcher as object
Dim oDoc as Object
Dim oSheet as Object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
oDoc=ThisComponent
oSheet=oDoc.Sheets().getByIndex(0)
oCellA2 = oSheet.getCellrangeByName("A2")
oCellB2 = oSheet.getCellrangeByName("B2")
dispatcher.executeDispatch(document, ".uno:CalculateHard", "", 0, Array())
While ((oCellA2.value / oCellB2.value)< (0,95 * oCellA2.value) OR (oCellA2 / oCellB2.value)> (1,05 * oCellA2.value))
dispatcher.executeDispatch(document, ".uno:CalculateHard", "", 0, Array())
Wend
end sub
Kann mir da bitte jemand helfen?
Vielen Dank!!!
Re: Rechnen via Makro
Hallo Andrej,
Dein Bild zeigt nur den Zellbereich A1:B2, gleichzeitig spricht Du von:
Dein Bild zeigt nur den Zellbereich A1:B2, gleichzeitig spricht Du von:
Lade mal ein Beispieldokument hoch, damit ich damit arbeiten kann.Andrej hat geschrieben:Ich lasse Zufallswerte in mehreren Zellen berechnen (via „Shift+Strg+F9“)...
Gruß
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Re: Rechnen via Makro
in diesem Fall sollten die Zufallszahlen so oft neu berechnet werden, bis deren Summe (B9) max 5% vom Basiswert (B1) abweicht...
Danke!!!
Danke!!!
- Dateianhänge
-
- Zafallszahl.ods
- (11.64 KiB) 248-mal heruntergeladen
Re: Rechnen via Makro
Hallo Andrej,
ggf. so?
ggf. so?
Gruß
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Craig
Nie die Sicherungskopie vergessen!
═══════════════════════════════════════
WIN 10 Pro 64-Bit • AOO 4.1.8 • LO 7.4.5.1 (x64)
Re: Rechnen via Makro
Vielen Dank, so geht leider nicht. Für mein Projekt ist es notwendig, dass die einzelnen Zufallszahlen eine größere Varianz haben. Es sind auch insgesamt mehr als zehn Zufallszahlen und enthalten auch noch andere Funktionen und Verweise.
Es wäre mir nur geholfen, wenn mit der Betätigung der Schaltfläche die Berechnung der Zufallszahlen (mit „Shift+Strg+F9“) in einer Schleife solange durchgeführt wird bis die Summe mit der gewünschten Varianz erreicht wird.
Es wäre mir nur geholfen, wenn mit der Betätigung der Schaltfläche die Berechnung der Zufallszahlen (mit „Shift+Strg+F9“) in einer Schleife solange durchgeführt wird bis die Summe mit der gewünschten Varianz erreicht wird.
Re: Rechnen via Makro
Moin,
versuche es mit folgendem Makro:
Gruß R
EDIT:Wenn du ohne Makro so lange klicken willst bis die Zahl passt, kannst du auch folgende Einstellung an der Schaltfäche vornehmen:
versuche es mit folgendem Makro:
Code: Alles auswählen
Sub GET_RAND_SUM
oSheet = ThisComponent.Sheets.getbyname("Tabelle1")
dBasisWert = oSheet.getcellbyposition(1,0).Value 'Zelle B1
oSummenCell = oSheet.getcellbyposition(1,8)'Zelle B9
do
ThisComponent.calculateAll
dSummenwert = oSummenCell.Value
'print dSummenwert
loop until dSummenwert >= 0.95 * dBasisWert AND dSummenwert <= 1.05 * dBasisWert
'print "Fertig: " & dSummenwert
End Sub
EDIT:Wenn du ohne Makro so lange klicken willst bis die Zahl passt, kannst du auch folgende Einstellung an der Schaltfäche vornehmen:
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Rechnen via Makro
Vielen Dank - funzt!
Ich bin nun vorerst glücklich. Werde meine Tools die Tage in Betrieb nehmen, und mich dann ggf. noch mal melden.
Ich bin nun vorerst glücklich. Werde meine Tools die Tage in Betrieb nehmen, und mich dann ggf. noch mal melden.