Ausblenden beschleunigen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Ausblenden beschleunigen

Re: Ausblenden beschleunigen

von Finger12 » Di, 17.10.2017 07:42

Wow damit ist es wirklich blitzschnell.

Vielen Dank.

Re: Ausblenden beschleunigen

von Stephan » Di, 17.10.2017 04:50

Leider dauert der Vorgang damit noch länger als bisher. (9 Sekunden statt 6 Sekunden)
Beide Zeiten sind unfasslich lang.

Versuche das Folgende, das dauert bei mir ca. 0,4 s:

Code: Alles auswählen

Sub ausblenden_neu2()

	daten = ThisComponent.sheets().getbyname("Tabelle1").getCellrangeByPosition(1,47,5,2042).getDataArray
	oRanges = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
	
	For i = 0 To UBOUND(daten())
		If daten(i)(4) = "0.00" OR daten(i)(0) = "Text" OR daten(i)(4) = "xxx" Then
			ii = i + 47
			'ThisComponent.sheets().getbyname("Tabelle1").rows(ii).IsVisible = false
			oRange = ThisComponent.sheets().getbyname("Tabelle1").getCellByPosition(0,ii)
			oRanges.addRangeAddress(oRange.RangeAddress,False)
		End If
	Next i
	ThisComponent.CurrentController.select(oRanges)
	
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dispatcher.executeDispatch(document, ".uno:HideRow", "", 0, Array())

	Msgbox "Fertig"
End Sub
Gruß
Stephan

Re: Ausblenden beschleunigen

von Finger12 » Mo, 16.10.2017 07:22

Hallo Stephan

Danke für deine Lösung.
Leider dauert der Vorgang damit noch länger als bisher. (9 Sekunden statt 6 Sekunden)

Ich denke ich werde alles so lassen wie bis anhin und mich mit der Verzögerung abfinden.

Gruss
Finger12

Re: Ausblenden beschleunigen

von Stephan » Fr, 13.10.2017 22:24

das hier dürfte schneller sein:

Code: Alles auswählen

Sub ausblenden_neu()
	daten = ThisComponent.sheets().getbyname("Tabelle1").getCellrangeByPosition(1,47,5,2042).getDataArray
	
	For i = 0 To UBOUND(daten())
		If daten(i)(4) = "0.00" OR daten(i)(0) = "Text" OR daten(i)(4) = "xxx" Then
			ii = i + 47
			ThisComponent.sheets().getbyname("Tabelle1").rows(ii).IsVisible = false
		End If
	Next i
	Msgbox "Fertig"
End Sub

Gruß
Stephan

Ausblenden beschleunigen

von Finger12 » Fr, 13.10.2017 14:17

Habe ein Makro zum ausblenden vonZeilen mit bestimmtem Inhalt. Leider geht dies immer einige Sekunden. Gibt es eine Möglichkeit meinen Code zu "tunen"

Code: Alles auswählen

Sub Ausblenden

thisComponent.lockControllers

with thisComponent.sheets().getbyname("Tabelle1")						
   for zi = 47 to 2042
   if .getcellbyposition(5,zi).string = "0.00" or .getcellbyposition(1,zi).string = "Text" or .getcellbyposition(5,zi).string = "xxx"  then
    .rows(zi).isvisible = FALSE
   end if
   next

end with     

ThisComponent.unlockControllers

End Sub

Nach oben