Datenpiloten mittels Makro o. Skript aktualisiern

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

stutenberg
Beiträge: 6
Registriert: Fr, 10.08.2007 18:53

Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von stutenberg »

Hi Zusammen,

ich bin noch recht ungeübt mit dem Open VBA oder wie es heisst und brauche da eure hilfe

Ich habe mehrere Datenpiloten und einer Tabelle die alle auf die selbe Quelle zugreifen.
Aus diesem Grund hätte ich gern ein Makro das nacheinander alle Piloten akualisiert.
Hinzu kommt das die Blätter die die Piloten enthalten ausgeblendet sein sollen/sind

Das VBA in Excel habe ich einigermasen verstanden aber das in OO versteh ich noch nicht.

Ob mir da wohl jemand helfen kann...
byteeater
***
Beiträge: 73
Registriert: So, 29.01.2006 13:37

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von byteeater »

hallo,

viewtopic.php?f=2&t=10971&hilit=

hier hatte ich mich auch schonmal um die lösung des problems bemüht. leider hatte das makro erst funktioniert, um beim nächsten start der datei nichts mehr zu tun :-(

also suche auch ich immer noch.
das thema wurde auch schon in anderen threads angesprochen. vielleicht findest du da noch infos und kannst das Puzzle zusammensetzen.

schöne grüße
bernd
stutenberg
Beiträge: 6
Registriert: Fr, 10.08.2007 18:53

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von stutenberg »

hey danke Dir!

ich versteh einfach die Grundlage noch nicht... ich schau mir das morgenvormittag mal an und ich glaube auch das wir das in diesem thread gelöst bekommen.
was mit excel geht, geht erst recht mit open source programmen 8)
stutenberg
Beiträge: 6
Registriert: Fr, 10.08.2007 18:53

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von stutenberg »

also die "nicht Programierer Lösung" sieht so aus:

Vorraussetzung ist das alle Blätter die Piloten enthalten eingeblendet (also nicht "hidden") sind.
Ausgangspunkt muss immer der selbe sein. Du befindest dich in der Pilotenquelle und startest den Recorder.
Danach wählst da den ersten Piloten an und gehst mit der rechten Maustaste auf "refresh" danach den zweiten usw. bis alle aktualisiert sind.
Danach kehrst du wieder zur Pilotenquelle zurück und beendest den Aufnahmemodus.
Speicher das Makro in "deine Datei"->Standart->Modul 1-> Makroname

Jetzt schau dir das script an.
Jedesmal wen du einen Piloten aktualisiert hast wurde der eine zeile

Code: Alles auswählen

rem dispatcher.executeDispatch(document, ".uno:RecalcPivotTable", "", 0, Array())
eingefügt.

Hier musst jetzt das "rem" zu anfang der zeile löschen, danach erst ist diese zeile aktiv.
Danach musst das Makrofenster nicht speichern, die Änderungen sind automatisch beim verlassen der Editors gespeichert.

Teste das Makro.

Wenn es läuft, weise es einer aktion zu.
z.B. kannst du über Tools -> Customize -> Keyboard eine Tastenkombination belegen.
ich nehme in dem Fall die Funktion BASIC -> OpenOffice.org Basic, das zeigt dir direkt alle verfügbaren Makros für deine Tabelle an.

Bei mir läuft das ganze sehr sauber durch.

Leider ist das die Leienversion des Makros.
In meinem Fall sollten zum Beispiel alle Blätter die Piloten enthalten ausgblendtet sein und nur im hintergrund rechnen.
Somit müsste das script dann die bezeichnung der blätter sowie die namen der Pivots enthalten....
byteeater
***
Beiträge: 73
Registriert: So, 29.01.2006 13:37

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von byteeater »

wie wäre dies:

die blätter mit den pivottabellen nur für den zweck des aktualisierens sichtbar machen und dann wieder verschwinden lassen?

wenn du den (irgendwo selbst erstellten) knopf "alle pivottabellen aktualisieren" drückst werden erst alle blätter sichtbar gemacht , danach aktualisiert und zum schluß wieder unsichtbar gemacht. mit dieser "Krücke" hab ich mir geholfen, zwar in nem anderen zusammenhang aber das sollte eigentlich trotzdem gehen.

http://www.dannenhoefer.de/faqstarbasic ... l#Zweig187

schönes wochenede
bernd
byteeater
***
Beiträge: 73
Registriert: So, 29.01.2006 13:37

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von byteeater »

habe alles so gemacht jedoch noch kein erfolg :-(

könnte es sein, daß es daran liegt , daß das makro nicht richtig läuft, weil ich mehrere datenpiloten aus einer tabelle erstelle (weil leider nicht alle spalten in einen piloten reingehen)und weil einige spaltenköpfe und den jeweiligen piloten gleichzeitig vorkommen ?

lg bernd
byteeater
***
Beiträge: 73
Registriert: So, 29.01.2006 13:37

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von byteeater »

in den weiten des netzes habe ich ein script gefunden das allerdings auf excel basiert

Code: Alles auswählen

Sub PivotAktual()
dim n as integer
dim nn as integer
    for n = 1 to worksheets.count
       for nn =1 To worksheets(n).pivottables.count
           worksheets(n).pivottables(nn).refreshtable
       next nn
    next n
end sub
Wenn man das auf Openoffice "ummünzen" könnte vielleicht würde es dann funktionieren?

lg bernd
stutenberg
Beiträge: 6
Registriert: Fr, 10.08.2007 18:53

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von stutenberg »

hierzu müssen wir wissen wie man die Pivots anwählt.

In Excel sieht das so ungefähr so aus:

worksheets("Blatt").pivottables(PivotTable1)."Befehl" (z.B. activate; refresh; select... )

das heisst man gibt den namen an und sagt akuakisiere. Genau das suche ich für unser Star Basic
Momentan weiss ich nicht einmal welche namen die Pivottables geschweige denn die Blätter haben. In excel kann man das einfach zuweisen, oder per default sind sie eben Pivottable 1 usw.

Das kriegen wir schon noch :D
byteeater
***
Beiträge: 73
Registriert: So, 29.01.2006 13:37

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von byteeater »

Hallo ,
hab grad gesehen daß eine neue version rausgekommen ist.
Ist unser Problemchen damit vielleicht gelöst?
Was sagt ihr dazu, mal bei den entwicklern nachzufragen ob sich so etwas einbauen läßt, oder wäre das zu vermessen ?
Ich kenn mich da nicht so aus was man frgen darf oder nicht :|

schönen Sonntag Abend noch
bernd
byteeater
***
Beiträge: 73
Registriert: So, 29.01.2006 13:37

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von byteeater »

Guten Morgen.
In der Hoffnung auf version 3 möchte ich nochmals nachfragen.
gibt es eine Lösung für oben angesprochenes Problem? mittlerweile sind bei mir nämlich so einige Datenpilottabellen angefallen, die noch immer jede einzeln aktualisiert werden wollen :-)

vielen Dank Bernd
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von Stephan »

In der Hoffnung auf version 3 möchte ich nochmals nachfragen.
Keine Ahnung welche Hoffnung Du auf Version 3.0 setzt bei einer Sache die eigentlich schon immer funktioniert.
gibt es eine Lösung für oben angesprochenes Problem?


z.B.:

Code: Alles auswählen

Sub Main
With Thiscomponent.Sheets()
	For i = 0 To .Count-1
		With .GetByIndex(i).getDataPilotTables() 
			If .Count > 0 Then
				For j = 0 To .Count-1
				    .getbyindex(j).refresh()
				Next j  
			End If 
		End With 
	Next i   
End With
End Sub



Gruß
Stephan
byteeater
***
Beiträge: 73
Registriert: So, 29.01.2006 13:37

Re: Datenpiloten mittels Makro o. Skript aktualisiern

Beitrag von byteeater »

WOW.
Es sieht so aus und fühlt sich so an als würde es tatsächlich funktionieren . :-)

Vielen Dank!!!!

Könnte mir bitte jemand noch erklären was dieses script tut ? Damit ichs besser verstehe .

lg Bernd
Antworten