🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Makro Probleme
Makro Probleme
Guten Abend Community,
ich habe folgenes Problem:
Ich habe ein LO Calc Projekt bestehend aus 8 Tabellen. Auf der 6 Tabelle habe ich ein Button erstellt der auf Befehl
folgenes ausführen soll:
Nachdem Textinhalte in ausgewählten Zellbereichen in Tabellen 5,4,3 nacheinander gelöscht werden sollen, möchte ich auf
Tabelle 3 in einer bestimmten Zelle enden. Ich habe folgenes Makro aufgezeichnet:
REM ***** BASIC *****
sub TEST
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 = "$I$25:$AF$40"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 4
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$I$25:$AJ$40"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Nr"
args6(0).Value = 3
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "$I$25:$AF$40"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args7())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args9(0) as new com.sun.star.beans.PropertyValue
args9(0).Name = "ToPoint"
args9(0).Value = "$I$25"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args9())
end sub
Durch betätigen des Buttons wird dieses Makro ausgeführt, nur stört es mich, dass jede tabelle einzeln kurz eingeblendet wird. Ist es möglich die "lösch" funktion zu behalten und nur das ein Tabellensprung von tabelle 6 zu Tabelle 3 zu sehen ist ?
Ich hoffe ich konnte das Problem relativ gut erklären und über ein Tipp würde ich mich freuen.
Beste Grüße BecksTown
ich habe folgenes Problem:
Ich habe ein LO Calc Projekt bestehend aus 8 Tabellen. Auf der 6 Tabelle habe ich ein Button erstellt der auf Befehl
folgenes ausführen soll:
Nachdem Textinhalte in ausgewählten Zellbereichen in Tabellen 5,4,3 nacheinander gelöscht werden sollen, möchte ich auf
Tabelle 3 in einer bestimmten Zelle enden. Ich habe folgenes Makro aufgezeichnet:
REM ***** BASIC *****
sub TEST
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 = "$I$25:$AF$40"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 4
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$I$25:$AJ$40"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Nr"
args6(0).Value = 3
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "$I$25:$AF$40"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args7())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args9(0) as new com.sun.star.beans.PropertyValue
args9(0).Name = "ToPoint"
args9(0).Value = "$I$25"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args9())
end sub
Durch betätigen des Buttons wird dieses Makro ausgeführt, nur stört es mich, dass jede tabelle einzeln kurz eingeblendet wird. Ist es möglich die "lösch" funktion zu behalten und nur das ein Tabellensprung von tabelle 6 zu Tabelle 3 zu sehen ist ?
Ich hoffe ich konnte das Problem relativ gut erklären und über ein Tipp würde ich mich freuen.
Beste Grüße BecksTown
Re: Makro Probleme
Hallo,
deine Frage wäre im Forum "Programmierung" besser aufgehoben.
Dein Wunsch kann erfüllt werden, allerdings ohne den Dispatcher (Makroaufzeichnung).
Beachte, dass die Zählung der Tabellen bei 0 beginnt.
deine Frage wäre im Forum "Programmierung" besser aufgehoben.
Dein Wunsch kann erfüllt werden, allerdings ohne den Dispatcher (Makroaufzeichnung).
Code: Alles auswählen
Sub Main
oDoc=ThisComponent
oDoc.Sheets(2).getCellRangeByName("$I$25:$AF$40").ClearContents(1+2+4)
'1 ... Werte
'2 ... Datum
'4 ... Text
'16 ... Formel
oDoc.Sheets(3).getCellRangeByName("$I$25:$AJ$40").ClearContents(1+2+4)
oDoc.Sheets(4).getCellRangeByName("$I$25:$AF$40").ClearContents(1+2+4)
oDoc.CurrentController.setActiveSheet(oDoc.Sheets(2))
End Sub
Gruß,
mikele
mikele
Re: Makro Probleme
Vielen Dank für die schnelle Hilfe. Stimmt das es in der "Programmierung" besser aufgehoben wäre
Eine kurze frage habe ich noch: wie müsste ich die letze zeile schreiben, wenn ich in einer bestimmten Zelle enden möchte ?
beste grüße

Eine kurze frage habe ich noch: wie müsste ich die letze zeile schreiben, wenn ich in einer bestimmten Zelle enden möchte ?
beste grüße
Re: Makro Probleme
Hallo
→Rechtsklick auf Schaltfläche→Steuerelement… im Reiter Allgemein wählst du im Dropdown Aktion: Dokument/Webseite öffnen
und im Textfeld URL direkt darunter trägst du die gewünschte Adresse ein zb. in der Form #Tabelle3.F27
Das musst du nicht ins Makro schreiben, setze die Schaltfläche nochmal in den Entwurfsmodus und …Eine kurze frage habe ich noch: wie müsste ich die letze zeile schreiben, wenn ich in einer bestimmten Zelle enden möchte ?
→Rechtsklick auf Schaltfläche→Steuerelement… im Reiter Allgemein wählst du im Dropdown Aktion: Dokument/Webseite öffnen
und im Textfeld URL direkt darunter trägst du die gewünschte Adresse ein zb. in der Form #Tabelle3.F27
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Makro Probleme
Guten Tag,
ich habe es wie von ihnen beschrieben gemacht und bekomme eine fehler meldung "ungültiger bereich"
Da ja die 1. tabelle ja die "0" trägt wäre die 3. tabelle ja die "2" richtig ?
die zelle wäre I25:I28, weil die zelle verbunden wurden. Im URL feld hatte ich folgene einträge gemacht:
#Tabelle2.I25
und
#Tabelle2.I25:I28
wo steckt die fehlerquelle ?
beste grüße
ich habe es wie von ihnen beschrieben gemacht und bekomme eine fehler meldung "ungültiger bereich"
Da ja die 1. tabelle ja die "0" trägt wäre die 3. tabelle ja die "2" richtig ?
die zelle wäre I25:I28, weil die zelle verbunden wurden. Im URL feld hatte ich folgene einträge gemacht:
#Tabelle2.I25
und
#Tabelle2.I25:I28
wo steckt die fehlerquelle ?

beste grüße
Re: Makro Probleme
Hallo
in der Form Tabellenname.Zelladresse
FALSCH … im Makro war das per Indexzugriff… Hier musst du hinter dem #-zeichen die vollständige Zelladresse eintragen,Da ja die 1. tabelle ja die "0" trägt wäre die 3. tabelle ja die "2" richtig ?
in der Form Tabellenname.Zelladresse
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Makro Probleme
hat geklappt. Besten dank
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.