Hallo!
Ich habe die Libreofficeversion auf 7.3.1 upgedatet und musste feststellen, dass mein Makro, was die ganze Zeit einwandfrei lief auf einmal
grotten langsam lief.
Nachdem ich unter Daten-->Berechnung-->autamisch abgeschaltet hatte, ging es dann von der Geschwindigkeit wieder!
Nur leider funktionierten dann die bedingten Formatierungen nicht mehr.
Erst als ich wieder auf die Version 7.2.5 down gegradet hatte, lief alles wie gewohnt!
Kann hier ein Fehler in der Programmierung der Version 7.3.1 vorliegen?
Gruß Ingo
[gelöst] nach Update auf Version 7.3.1 Makro extrem langsam!
Moderator: Moderatoren
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
[gelöst] nach Update auf Version 7.3.1 Makro extrem langsam!
Zuletzt geändert von little fingers am Mi, 16.03.2022 14:12, insgesamt 1-mal geändert.
Re: nach Update auf Version 7.3.1 Makro extrem langsam!
Hallo,
ja klar, kann es sein.
Ohne Infos zum Makro wird es schwierig etwas sinnvolles zu sagen. Wenn es mit der automatischen Berechnung etwas zu tun hat, dann müsste es sich beim Makro um eine benutzerdefinierte Funktion handeln. Kannst du uns das Makro mal posten?
ja klar, kann es sein.
Ohne Infos zum Makro wird es schwierig etwas sinnvolles zu sagen. Wenn es mit der automatischen Berechnung etwas zu tun hat, dann müsste es sich beim Makro um eine benutzerdefinierte Funktion handeln. Kannst du uns das Makro mal posten?
Gruß,
mikeleb
mikeleb
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: nach Update auf Version 7.3.1 Makro extrem langsam!
Na Klar!
Ist ein bisschen länger, weil mehrere Makros hintereinander ausgeführt!
Aber schon beim Textimport bemerkt man schon eine heftige Verzögerung!
Gruß Ingo
Ist ein bisschen länger, weil mehrere Makros hintereinander ausgeführt!
Aber schon beim Textimport bemerkt man schon eine heftige Verzögerung!
Gruß Ingo
Code: Alles auswählen
REM ***** BASIC *****
Sub AlleMakros
all_Loeschen()
import()
ROT()
ROT2()
SpaltenOptimiern()
KundenUebertrag()
GewichtsUebertrag()
UmsatzUebertrag()
ddloeschen()
FarbAenderung()
end Sub
Sub CSVImport
all_Loeschen()
import()
ROT()
ROT2()
SpaltenOptimiern()
FarbAenderung()
end Sub
sub all_Loeschen
oCalc = thisComponent
oSheet = oCalc.sheets(0)
oCellRange = osheet.getCellRangeByName("A1:Q200")
' ocellRange.clearContents(5)
end Sub
sub import
Wait 3000 '1000 Millisekunden warten
odoc=thiscomponent
REM odoc.Sheets.insertNewByName("neue Tabelle",odoc.Sheets.count)
otab=odoc.sheets.getByName("LStatistik")
sUrl=converttourl("V:\TXT\L-Statistik-Touren.csv")
otab.link(sUrl,"","Text - txt - csv (StarCalc)","59,34,0,1",com.sun.star.sheet.SheetLinkMode.NORMAL)
oTab.linkmode=com.sun.star.sheet.SheetLinkMode.NONE
End Sub
Sub KundenUebertrag()
Wait 1000 '1000 Millisekunden warten
With ThisComponent.Sheets.getByName("Uebertrag")
ThisComponent.Sheets.getByName("LStatistik").getCellrangeByName("F2:F200").setDataArray(.getCellrangeByName("H2:H200").getDataArray)
End With
End Sub
Sub GewichtsUebertrag()
Wait 1000 '1000 Millisekunden warten
With ThisComponent.Sheets.getByName("Uebertrag")
ThisComponent.Sheets.getByName("LStatistik").getCellrangeByName("N2:N200").setDataArray(.getCellrangeByName("B2:B200").getDataArray)
End With
End Sub
Sub UmsatzUebertrag()
Wait 1000 '1000 Millisekunden warten
With ThisComponent.Sheets.getByName("Uebertrag")
ThisComponent.Sheets.getByName("LStatistik").getCellrangeByName("O2:O200").setDataArray(.getCellrangeByName("E2:E200").getDataArray)
End With
End Sub
Sub ddloeschen
Wait 1000 '1000 Millisekunden warten
ozeile=ThisComponent.CurrentController.ActiveSheet.Columns(5) 'F
oleer=ozeile.queryemptycells
oletzter=oleer(oleer.count-1)
erg = oletzter.rangeaddress.startrow-1
With ThisComponent.CurrentController.ActiveSheet
For i = 0 To erg
k = .getCellByPosition(5, i).String
For j = i+1 To erg
If .getCellByPosition(5, j).String = k Then
For jj = 0 To 5
.getCellByPosition(jj, j).String = ""
Next jj
End If
Next j
Next i
msgbox ("doppelte Einträge wurden gelöscht")
End With
End Sub
sub ROT
Tabelle = ThisComponent.Sheets(0)
CellRange = Tabelle.getCellRangeByName("C1:Q200")
CellRange.CharFontName="Tahoma"
CellRange.CharHeight="11"
CellRange.CellBackColor=RGB(251,131, 90)
' CellRange.CharWeight=com.sun.star.awt.FontWeight.BOLD
'Überschriften positionieren
'horijustify=1 <- links
'horijustify=2 <- mitte
'horijustify=3 <- rechts
'horijustify=4 <- nicht nur umbrochen -->Blocksatz
CellRange.horijustify = com.sun.star.table.CellHoriJustify.CENTER'Mittig
CellRange.IsTextWrapped = false'Umbruch
' CellRange.IsTextWrapped = true'Umbruch
End Sub
sub ROT2
Tabelle = ThisComponent.Sheets(0)
CellRange = Tabelle.getCellRangeByName("A1:A200")
CellRange.CharFontName="Tahoma"
CellRange.CharHeight="11"
CellRange.CellBackColor=RGB(251,131, 90)
' CellRange.CharWeight=com.sun.star.awt.FontWeight.BOLD
'Überschriften positionieren
'horijustify=1 <- links
'horijustify=2 <- mitte
'horijustify=3 <- rechts
'horijustify=4 <- nicht nur umbrochen -->Blocksatz
CellRange.horijustify = com.sun.star.table.CellHoriJustify.CENTER'Mittig
CellRange.IsTextWrapped = false'Umbruch
' CellRange.IsTextWrapped = true'Umbruch
End Sub
Sub SpaltenOptimiern
oDoc = thisComponent
oSheet = oDoc.sheets(0)
oSp = oSheet.getColumns()
oSp.optimalWidth = true
End Sub
Sub FarbAenderung()
oDoc = thisComponent 'das Dokument
oSheet = oDoc.sheets(0) 'erstes Tabellenblatt
For ze = 0 to 200 'Zeilenzähler
For sp = 1 to 1 'Spaltenzähler
oCell = oSheet.getCellByPosition(sp,ze)
Select Case oCell.String
Case ""
oCell.CellBackColor = -1
' 1er Touren
Case "110"
oCell.CellBackColor = RGB(180,199, 220)
Case "120"
oCell.CellBackColor = RGB(0,102, 204)
Case "131"
oCell.CellBackColor = RGB(250,255, 102)
Case "140"
oCell.CellBackColor = RGB(0,174, 0)
Case "125"
oCell.CellBackColor = RGB(255,153, 102)
Case "135"
oCell.CellBackColor = RGB(255,51, 51)
Case "155"
oCell.CellBackColor = RGB(15,252, 204)
Case "175"
oCell.CellBackColor = RGB(167,132, 244)
Case "185"
oCell.CellBackColor = RGB(250,215, 122)
Case "195"
oCell.CellBackColor = RGB(0,134, 7)
' 2er Touren
Case "220"
oCell.CellBackColor = RGB(180,199, 220)
Case "240"
oCell.CellBackColor = RGB(0,102, 204)
Case "290"
oCell.CellBackColor = RGB(250,255, 102)
Case "205"
oCell.CellBackColor = RGB(0,174, 0)
Case "295"
oCell.CellBackColor = RGB(255,153, 102)
' 3er Touren
Case "320"
oCell.CellBackColor = RGB(180,199, 220)
Case "341"
oCell.CellBackColor = RGB(0,102, 204)
Case "340"
oCell.CellBackColor = RGB(250,255, 102)
Case "331"
oCell.CellBackColor = RGB(0,174, 0)
Case "315"
oCell.CellBackColor = RGB(255,153, 102)
Case "335"
oCell.CellBackColor = RGB(255,51, 51)
Case "355"
oCell.CellBackColor = RGB(15,252, 204)
Case "375"
oCell.CellBackColor = RGB(167,132, 244)
Case "385"
oCell.CellBackColor = RGB(250,215, 122)
Case "395"
oCell.CellBackColor = RGB(0,134, 7)
' 4er Touren
Case "440"
oCell.CellBackColor = RGB(180,199, 220)
Case "420"
oCell.CellBackColor = RGB(0,102, 204)
Case "470"
oCell.CellBackColor = RGB(250,255, 102)
Case "405"
oCell.CellBackColor = RGB(0,174, 0)
Case "415"
oCell.CellBackColor = RGB(255,153, 102)
' 5er Touren
Case "510"
oCell.CellBackColor = RGB(180,199, 220)
Case "520"
oCell.CellBackColor = RGB(0,102, 204)
Case "541"
oCell.CellBackColor = RGB(250,255, 102)
Case "540"
oCell.CellBackColor = RGB(0,174, 0)
Case "525"
oCell.CellBackColor = RGB(255,153, 102)
Case "535"
oCell.CellBackColor = RGB(255,51, 51)
Case "555"
oCell.CellBackColor = RGB(15,252, 204)
Case "575"
oCell.CellBackColor = RGB(167,132, 244)
Case "585"
oCell.CellBackColor = RGB(250,215, 122)
Case "595"
oCell.CellBackColor = RGB(0,134, 7)
' 6er Touren
Case "695"
oCell.CellBackColor = RGB(180,199, 220)
Case "690"
oCell.CellBackColor = RGB(0,102, 204)
End Select
next
next
End Sub
Re: nach Update auf Version 7.3.1 Makro extrem langsam!
hey Little Fingers,
was ist eigentlich für Dich eine "heftige Verzögerung"? Bei den vielen wait-Anweisungen im Makro (zwischen 1000 und 3000 - also 1 bzw. 3 sek) hast Du immer eine spürbare Verzögerung. Also, ich zähle alleine bei einmaligen Durchlauf rund 7 Sek nur durch die Wait-Anweisungen??
Brauchst Du wirklich eine soooo lange Wartezeit? In der Regel reichen doch auch Wait(100) oder so - falls die Verzögerung tatsächlich benötigt wird.
Ansonsten kann ich wenig kritisches in den Makros feststellen.
Ich würde empfehlen: Teste die Einzelmakros und identifiziere den "Bremser". Du hast passende Datendateien (aber arbeite mit Kopien - zerstöre Dir nicht eventuell die Orginaldatei;))
VG
Tom
was ist eigentlich für Dich eine "heftige Verzögerung"? Bei den vielen wait-Anweisungen im Makro (zwischen 1000 und 3000 - also 1 bzw. 3 sek) hast Du immer eine spürbare Verzögerung. Also, ich zähle alleine bei einmaligen Durchlauf rund 7 Sek nur durch die Wait-Anweisungen??
Brauchst Du wirklich eine soooo lange Wartezeit? In der Regel reichen doch auch Wait(100) oder so - falls die Verzögerung tatsächlich benötigt wird.
Ansonsten kann ich wenig kritisches in den Makros feststellen.
Ich würde empfehlen: Teste die Einzelmakros und identifiziere den "Bremser". Du hast passende Datendateien (aber arbeite mit Kopien - zerstöre Dir nicht eventuell die Orginaldatei;))
VG
Tom
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
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: nach Update auf Version 7.3.1 Makro extrem langsam!
Jupp...Danke, mache ich!
in der 7.3.1 braucht es nicht Sekunden, die mir auch nix ausmachen, sondern Minuten!
Daher meine Anfrage!
Gruß Ingo
in der 7.3.1 braucht es nicht Sekunden, die mir auch nix ausmachen, sondern Minuten!
Daher meine Anfrage!
Gruß Ingo
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: nach Update auf Version 7.3.1 Makro extrem langsam!
Vielen Dank für die Hilfe!
Die Makros liefen wohl deswegen so langsam, weil die Installation wohl fehlerhaft war.
Nachdem ich wieder deinstalliert und danach wieder installiert habe, lief alles, wie gewohnt!
Gruß Ingo
Die Makros liefen wohl deswegen so langsam, weil die Installation wohl fehlerhaft war.
Nachdem ich wieder deinstalliert und danach wieder installiert habe, lief alles, wie gewohnt!
Gruß Ingo