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
Automatisches Update eines gesamten Dokumentes
Moderator: Moderatoren
Re: Automatisches Update eines gesamten Dokumentes
Hallo
Wahrscheinlich so:
Karo
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)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Automatisches Update eines gesamten Dokumentes
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
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