CALC: Dokument öffnen, auf Tab.-Blatt wechseln

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: CALC: Dokument öffnen, auf Tab.-Blatt wechseln

Re: soll mit makro laufen

von speednetz » Mi, 22.02.2017 16:18

Hallo Stephan

Habe versucht den inhalt des makros was ich zum löschen nutze dahinter zu setzen.

leider geht es so nicht.

Hier das makro was ich zum löschen nutze.

Code: Alles auswählen

sub    loeschen1
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 = "Nr"
args1(0).Value = 1

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$B$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$C$6:$G$56"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$C$60:$G$60"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "$B$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args7())

rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "Nr"
args8(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args8())

rem ----------------------------------------------------------------------
dim args9(0) as new com.sun.star.beans.PropertyValue
args9(0).Name = "ToPoint"
args9(0).Value = "$B$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args9())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args11(0) as new com.sun.star.beans.PropertyValue
args11(0).Name = "ToPoint"
args11(0).Value = "$C$6:$G$56"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args11())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args13(0) as new com.sun.star.beans.PropertyValue
args13(0).Name = "ToPoint"
args13(0).Value = "$C$60:$G$60"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args13())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

rem ----------------------------------------------------------------------
dim args15(0) as new com.sun.star.beans.PropertyValue
args15(0).Name = "ToPoint"
args15(0).Value = "$B$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args15())



end Sub

Wenn das gehen würde und er dann die Datei zumachen würde wäre das super.

Dann brache ich nicht zu springen.

Vieleicht kannst du mir ja damit helfen

Gruß Ralf

Re: soll mit makro laufen

von Stephan » Mi, 22.02.2017 13:56

Mein frage wäre kann ich das löschen vieleicht hinter diese Zeile legen

oDoc = starDesktop.loadComponentfromURL(convertToURL("C:\Statistik - Kopie\Statistik.ods")),"_blank",0,par())
ja. Zumindest fällt mir nichts ein was dagegen spricht.


Gruß
Stephan

Re: soll mit makro laufen

von speednetz » Mi, 22.02.2017 12:19

Hallo Stephan
Danke es läuft jetzt so wie ich es mir gedacht habe.

Der Sinn ist das ich dann in der Orginaldatei das makro Inhalt löschen starten kann.

Mein frage wäre kann ich das löschen vieleicht hinter diese Zeile legen

oDoc = starDesktop.loadComponentfromURL(convertToURL("C:\Statistik - Kopie\Statistik.ods")),"_blank",0,par())

dann müsst ich nicht auf das Tabellenblatt springen.

Würde mich über eine positive Nachricht freuen

Dank noch mal Stepfan

Gruß Ralf

Re: soll mit makro laufen

von Stephan » Mi, 22.02.2017 09:34

Du musst das Zulassen der Ausführung von Makros als Parameter übrergeben, z.B.:

Code: Alles auswählen

Dim par(0) As New com.sun.star.beans.PropertyValue
par(0).Name  = "MacroExecutionMode"
par(0).Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN

oDoc = starDesktop.loadComponentfromURL(convertToURL("C:\Statistik - Kopie\Statistik.ods")),"_blank",0,par())

oSheet = oDoc.sheets(2)
oDoc.getCurrentController.setActiveSheet(oSheet)
Gruß
Stephan

Re: soll mit makro laufen

von speednetz » Mi, 22.02.2017 09:15

Hallo Tom

Soweit läuft es,aber wenn er das Tabellenblatt geöffnet hat kann ich die dort liegenden Makro Bouton
nicht starten.

Ich bekomme die Mitteilung

Aus Sicherheitsgründen ist dieses Makro nicht ausführbar.

Nehme ich die Zeilen wieder raus läuft es wie vorher.

Hast du eine Idee wo ran das liegt.

Gruß Ralf

Re: soll mit makro laufen

von Karolus » Di, 21.02.2017 23:54

Hallo

Probiers mal schlicht und ergreifend mit:

Code: Alles auswählen

	oSer = createUNOService("com.sun.star.system.SystemShellExecute")
  	oSer.execute("C:\Statistik - Kopie\Statistik.ods#Tabelle3",,0) 
unter der Annahme das deine dritte Tabelle eben diesen Namen hat.

Re: soll mit makro laufen

von speednetz » Di, 21.02.2017 19:18

Danke Tom
Werde es testen.
Melde mich ob es funktioniert

Gruß Ralf

Re: soll mit makro laufen

von Toxitom » Di, 21.02.2017 17:48

Hallo Ralf,

Hmm, dein Code startet zwar das Calc-Dokument - das war es aber auch. Sehr ungünstig das Ganze.

Einzige Lösung in Deinem Fall: Schliesse das Statistik.ods mit Cursor auf der dritten Seite - dann sollte es auch damit wieder öffnen.

Willst Du das Ganze per Makro machen, benötigst Du Dein Dokument als Objekt.
Am einfachsten geht das über die Methode

Code: Alles auswählen

oDoc = starDesktop.loadComponentfromURL(convertToURL("C:\Statistik - Kopie\Statistik.ods")),"_blanc",0,array())
oDoc wäre jetzt das Objekt deines Dokumentes.
Nun kannst Du Dir Dein 3. Tabnellenblatt als Objekt holen:

Code: Alles auswählen

oSheet = oDoc.sheets(2)
oder - falls nur der Name bekannt ist:

Code: Alles auswählen

oSheet = oDoc.sheets.getByName("Tabellenblattname")
Und nun kannst Du das aktiv setzen:

Code: Alles auswählen

oDoc.getCurrentController.setActiveSheet(oSheet)
Das sollte es gewesen sein:)
VG Tom

CALC: Dokument öffnen, auf Tab.-Blatt wechseln

von speednetz » Di, 21.02.2017 16:47

Hallo
Kann mir vielleicht jeman helfen

Mein Problem ist ich möchte das wenn die Datei sich öffnet was schon so geht. das er das 3 Tabellenblatt öffnet.


Code: Alles auswählen

oSer = createUNOService("com.sun.star.system.SystemShellExecute")
  oSer.execute("C:\Statistik - Kopie\Statistik.ods",,0)


Wäre schön wenn mir einer eine Lösung geben könnte

Danke Ralf


Moderation,4: Tippfehler in Betreff (für Suchfunktionen) korrigiert

Nach oben