Hallo,
Ein Problem in CALC:
Mein Makro wird von Datei_A aufgerufen.
In Datei_B befindet sich ein Tabellenblatt "T_Quelle", welches ich komplett in meine Datei_A hineinkopieren möchte.
Innerhalb meiner Datei_A habe ich keinerlei Problem ein Tabellenblatt zu kopieren.
Das geht mit dem Beispiel von Michael Dannenhöfer wunderbar, z.B.:
myDoc = thisComponent
myDoc.Sheets.CopyByName("T_Quelle","T_Ziel",0)
Aber wenn meine Quelltabelle "T_Quelle" in einer anderen Datei steckt (welche ich auch wunderbar per Makro öffnen und darauf zugreifen kann), dann weiß ich nicht, wie ich eine derartige Kopierfunktion hinbekomme.
Da bin ich einfach zu blöd dazu.
Weiß das jemand von Euch versierten Nutzern?
Danke vorab!
OOo3.1.1
WinXP ServicePack3
Komplettes Tabellenblatt zwischen 2 Dateien kopieren
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Komplettes Tabellenblatt zwischen 2 Dateien kopieren
Andrew hat mal wieder die Antwort
Quelle: http://www.oooforum.org/forum/viewtopic.phtml?t=7027
Code: Alles auswählen
Sub Main
Dim sNewURL$ 'URL For a NEW calc document "private:factory/scalc"
Dim oNewDoc 'New Document
Dim oFrame 'Frame that can perform the dispatch
Dim oDispatcher 'The dispatcher to use
Dim oSheet 'The current active sheet
Dim i% 'General Index Variable
Dim iActive% 'Currently active sheet
REM This will copy FROM ThisComponent
oFrame = ThisComponent.CurrentController.Frame
oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
oSheet = ThisComponent.CurrentController.getActiveSheet()
iActive = -1 : i = 0
Do While iActive < 0
If ThisComponent.Sheets(i).Name = oSheet.Name Then
iActive = i
Else
i = i + 1
End If
Loop
sNewURL = "private:factory/scalc"
oNewDoc = StarDesktop.loadComponentFromURL(sNewURL, "_blank", 0, Array())
Dim args(2) as new com.sun.star.beans.PropertyValue
args(0).Name = "DocName"
args(0).Value = "Untitled1" 'This copies to the document named Untitled1
args(1).Name = "Index"
args(1).Value = iActive
args(2).Name = "Copy"
args(2).Value = True 'Set to Flase to perform a Move
oDispatcher.executeDispatch(oFrame, ".uno:Move", "", 0, args())
End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Komplettes Tabellenblatt zwischen 2 Dateien kopieren
Tausend Dank. Das probiere ich aus.
In Andrew's famous document habe ich natürlich auch versucht etwas zu finden, aber da steht das wohl so nicht drin.
Gut dass der Herr offenbar auch in diversen Foren unterwegs ist.
Mit dem dispatcher habe ich es auch selbst kurz versucht, bin aber aus Mangel an Erfahrung gescheitert.
Aber den Code zieh ich mir dann rein.
Gruß, Blaukraut
In Andrew's famous document habe ich natürlich auch versucht etwas zu finden, aber da steht das wohl so nicht drin.
Gut dass der Herr offenbar auch in diversen Foren unterwegs ist.
Mit dem dispatcher habe ich es auch selbst kurz versucht, bin aber aus Mangel an Erfahrung gescheitert.
Aber den Code zieh ich mir dann rein.
Gruß, Blaukraut