Automatisches Update eines gesamten Dokumentes

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

zeeman78
Beiträge: 9
Registriert: Fr, 06.01.2012 00:39

Automatisches Update eines gesamten Dokumentes

Beitrag von zeeman78 »

Hallo,

Vielen Dank an alle fleißigen Helfer. Durch euch ist die Lernkurve bei mir extrem hoch.

Ich habe folgende Frage. Ich habe eine Base Datenbank und ein Calc-Dokument verknüpft. Hierbei habe ich ungefähr 20 Tabellenblätter nebeneinander, die alle auf unterschiedliche Abfragen verknüpft. Mithilfe des Markro-rekorders habe ich einen Makro erstellt, bei dem ich mit Knopfdruck jeweils das aktuelle Tabellenblatt aktualisieren kann. (siehe anbei) Dies ist bei 20 Blättern etwas mühselig.

sub Aktualisieren
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DataAreaRefresh", "", 0, Array())
end sub

Wie muss das Marko aussehen, wenn ich alle Tabellenblätter auf einmal aktualisieren möchte? Das müsste doch gehen oder?

Vielen dank im Voraus
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Automatisches Update eines gesamten Dokumentes

Beitrag von Karolus »

Hallo
Wahrscheinlich so:

Code: Alles auswählen

Sub refresh_Databases
databaseranges = thiscomponent.DataBaseRanges()
for i = 0 to databaseranges.count()-1
databaseranges.getByIndex(i).refresh()
next i
End Sub


Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
zeeman78
Beiträge: 9
Registriert: Fr, 06.01.2012 00:39

Re: Automatisches Update eines gesamten Dokumentes

Beitrag von zeeman78 »

Hallo Karo,

habe vielen Dank für die schnelle Hilfe.
Funktionniert super, Habe nochmals vielen Dank.

VBA mäßig stehe ich noch ganz am Anfang, darf ich daher bzgl. deines Markros ein paar Fragen stellen? Ich war überrascht, dass der Makro so kurz ist, daher mein Interesse

Sub refresh_Databases --> Name des Makros ist klar.

databaseranges = thiscomponent.DataBaseRanges() --> Was definierst du hier?

for i = 0 to databaseranges.count()-1 --> hier wird eine Schleife vorbereitet, die der Makro abarbeiten soll. Was bedeutet das .count()-1?

databaseranges.getByIndex(i).refresh()--> was definiert diese Zeile

next i --> Marko soll zum nächsten i gehen bis es durch ist, habe ich verstanden

End Sub

Hab vielen Dank im Voraus

Viele grüße
Uwe
Antworten