Mir fällt auf, dass Makros in Calc im Vergleich zu Excel _deutlich_ langsamer ausgeführt werden. Außerdem bekomme ich während der Ausführung keinen WaitCursor angezeigt. Warum ist das so?
Kann die Ausführungsgeschwindigkeit damit zu tun haben, dass für die Makros Java notwendig ist?
Ausführgeschwindigkeit von Makros
Moderator: Moderatoren
Kann sein, habe ich mir noch nie Gedanken gemacht. Könntest Du bitte einen Beispielcode posten (eigentlich zwei für Calc und Excel) bei dem es sich so verhält?Mir fällt auf, dass Makros in Calc im Vergleich zu Excel _deutlich_ langsamer ausgeführt werden.
Die Sanduhr ist einfach nicht vorgesehen. Mauscursor zu programmieren ist meines Wissens in OOoBasic schwierig, bisher habe ich immer vorgeschlagen eine Fortschrittsanzeige auf einem Basic-Dialog oder die der Statuszeile als Alternative für die Sanduhr zu verwenden.Außerdem bekomme ich während der Ausführung keinen WaitCursor angezeigt. Warum ist das so?
Nein. Deine Makros laufen doch, sonst könntest Du ja nicht feststellen das sie langsamer laufen. Ich schließe jetzt mal nicht grundsätzlich aus das man in bestimmten Fällen Java brauchte, ohne zu wissen was das für Makros wären, aber ganz sicher werden schon funktionierende Makros durch Java-Installation nicht schneller.Kann die Ausführungsgeschwindigkeit damit zu tun haben, dass für die Makros Java notwendig ist?
Gruß
Stephan
Stephan hat geschrieben:Nein. Deine Makros laufen doch, sonst könntest Du ja nicht feststellen das sie langsamer laufen. Ich schließe jetzt mal nicht grundsätzlich aus das man in bestimmten Fällen Java brauchte, ohne zu wissen was das für Makros wären, aber ganz sicher werden schon funktionierende Makros durch Java-Installation nicht schneller.Kann die Ausführungsgeschwindigkeit damit zu tun haben, dass für die Makros Java notwendig ist?

Wenn ich keine Java-Engine auf meiner Maschine installiert habe bekomme ich den Hinweis, dass Makros deshalb nicht ausgeführt werden können! Also ist Java doch notwendig, oder widersprichst Du...!??
Ich muss meine Aussage im Hinblick auf Java korrigieren: Heute morgen kann ich das Makro ausführen auch wenn Java in den Calc Optionen ausgeschaltet ist... aber:
Die Ausführungsgeschwindigkeit ist eindeutig viel zu langsam. Und durch den nicht vorhandenen WaitCursor bzw. einen Fortschrittsbalken erkennt der Benutzer auch garnicht, ob etwas getan wird oder nicht.
Das ist mE "suboptimal" um es vornehm zu formulieren. Das kann ich meinen Benutzer nicht zumuten.
Die Ausführungsgeschwindigkeit ist eindeutig viel zu langsam. Und durch den nicht vorhandenen WaitCursor bzw. einen Fortschrittsbalken erkennt der Benutzer auch garnicht, ob etwas getan wird oder nicht.
Das ist mE "suboptimal" um es vornehm zu formulieren. Das kann ich meinen Benutzer nicht zumuten.
Hallo
Stephan schrieb:
Wenn Wolfgang konkrete Fragen nicht beantwortet weil es seinem user nicht zuzumuten ist ;->
dann tu ich das mal , in calc meint er wohl dieses :
Sub leerezellennullen()
oSelect=ThisComponent.CurrentSelection
oColumn=oselect.Columns
oRow=oSelect.Rows
For n= 0 To oColumn.getCount-1
For m = 0 To oRow.getCount-1
oCell=oselect.getCellByPosition (n, m)
Select Case oCell.String
Case ""
oCell.value = 0
End Select
next
next
End Sub
Stephan , falls es dir bekannt vorkommt ,es war vor kurzem noch zum Setzen der Hintergrundfarbe gedacht; ich habe lediglich eine Zeile so geändert ,das leere Zellen mit
Nullwerten versehen werden.
Das entsprechende Excel -Makro kenne ich nicht , das muss Wolfgang schon selber
liefern
Gruß Karo
Stephan schrieb:
@StephanKönntest Du bitte einen Beispielcode posten (eigentlich zwei für Calc und Excel) bei dem es sich so verhält?
Wenn Wolfgang konkrete Fragen nicht beantwortet weil es seinem user nicht zuzumuten ist ;->
dann tu ich das mal , in calc meint er wohl dieses :
Sub leerezellennullen()
oSelect=ThisComponent.CurrentSelection
oColumn=oselect.Columns
oRow=oSelect.Rows
For n= 0 To oColumn.getCount-1
For m = 0 To oRow.getCount-1
oCell=oselect.getCellByPosition (n, m)
Select Case oCell.String
Case ""
oCell.value = 0
End Select
next
next
End Sub
Stephan , falls es dir bekannt vorkommt ,es war vor kurzem noch zum Setzen der Hintergrundfarbe gedacht; ich habe lediglich eine Zeile so geändert ,das leere Zellen mit
Nullwerten versehen werden.
Das entsprechende Excel -Makro kenne ich nicht , das muss Wolfgang schon selber
liefern
Gruß Karo
In Excel brauche ich für diese Aufgabe kein Makro... Da mache ich solche Dinge über Suchen und Ersetzen.Karolus hat geschrieben:Das entsprechende Excel -Makro kenne ich nicht , das muss Wolfgang schon selber liefern
Wir nutzen aber in Excel durchaus deutlich komplexere Makros als das oben beschriebene und in Dateien, die deutlich größer sind als meine aktuelle Testdatei mit 5500 Zeilen.
Das Makro in OO braucht bei der aktuellen Testdatei "gefühlte" 90 Sekunden - ich hab's nicht gestoppt. Das ist einfach zu lange, zumal ich nicht erkennen kann, ob die Ausführung noch aktiv ist oder nicht...
