Moin, Jörg,
> Hallo Kornelia,
> Kornelia Lubke schrieb:
> > [...]
> würdest Du bitte einfach den kompletten Code posten, dann wäre es viel
> einfacher Dir zu helfen.
[...]
> nur die
> Beteiligten Dir Dir praktisch helfen können dürften alle den Einblick
> in den Code bevorzugen, weil das viel schneller Klarheit schafft.
überredet. Aber nicht motzen, ich stecke bei Makroprogrammierung noch in
den Kinderschuhen. ;-)
--------code-----------
REM ***** BASIC *****
Dim datpfad as String, sDatpfad as String
Dim oDoc as Object, oDoc2 as Object 'oDoc2: .ods
'oDoc:
dattemp.txt
Dim oCur as Object, oView as Object, oView2 as Object
Dim selCell as Object, oSheet2 as Object, oSheets2 as Object
Dim nZe as Long, nSp as Long
Dim oFrame as Object, oFrame2 as Object
Sub DatLaden
rem
----------------------------------------------------------------------
rem define variables
Dim dispatcher as object
Dim oCell as Object
Dim Args ()
oDoc2 = ThisComponent
DialogLibraries.LoadLibrary ("Standard")
GlobalScope.BasicLibraries.LoadLibrary("Tools")
rem
----------------------------------------------------------------------
rem Tabellenblatt-Name auslesen
Dim sTabName As String
oView2 = oDoc2.CurrentController
sTabName = oDoc2.CurrentController.ActiveSheet.Name
oSheet2 = oDoc2.Sheets.GetByName (sTabName)
oView2.ActiveSheet
rem hier Integer-Wert für aktive Tabelle übergeben
rem
----------------------------------------------------------------------
rem Dateinamen, der sich in Zelle C35 befindet, übergeben
oCell =oView2.ActiveSheet ().GetCellRangeByName ("C35") ' )
Select case oCell.getType ()
case com.sun.star.table.CellContentType.TEXT
datpfad = oCell.GetString
End Select
sDatpfad = ConvertToURL (datpfad)
rem
----------------------------------------------------------------------
rem Datei, die im vorhergehenden Schritt kopiert wurde, öffnen
oDoc = StarDesktop.LoadComponentFromURL (sDatpfad, "_blank", 0, args())
oDoc.StoreToURL ("file:///c:/dattemp.txt", args ())
oDoc.Close (True)
oDoc = StarDesktop.LoadComponentFromURL ("file:///c:/dattemp.txt", "
_blank", 0, args()) 'Übergibt aktuellen Controller
rem Text ändern
----------------------------------------------------------
rem get access to the document
oFrame = oDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(oFrame, ".uno:GoToStartOfDoc", "", 0, Array())
dispatcher.executeDispatch(oFrame, ".uno:Delete", "", 0, Array())
rem Text
kopieren---------------------------------------------------------
dispatcher.executeDispatch(oFrame, ".uno:GoToStartOfDoc", "", 0, Array())
dispatcher.executeDispatch(oFrame, ".uno:EndOfDocumentSel", "", 0,
Array())
rem
----------------------------------------------------------------------
dispatcher.executeDispatch(oFrame, ".uno:Copy", "", 0, Array())
rem
----------------------------------------------------------------------
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem get access to the document
oFrame2 = oDoc2.CurrentController.Frame
oDoc2.currentcontroller.frame.containerwindow.toFront
rem
----------------------------------------------------------------------
rem Tabellen-Cursor erzeugen und auf Zelle A37 bewegen
oView2.ActiveSheet
selCell = oDoc2.Sheets (GetPosActiveSheet).getCellbyPosition (0,36)
'Makro springt auf das letzte Tab.blatt - Warum?
oDoc2.CurrentController.Select (selCell)
rem
----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Format"
args1(0).Value = 1
dispatcher.executeDispatch(oFrame2, ".uno:PasteSpecial", "", 0, args1())
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem
----------------------------------------------------------------------
rem get access to the document
oDoc2 = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem
----------------------------------------------------------------------
dispatcher.executeDispatch(oDoc2, ".uno:Save", "", 0, Array())
rem
----------------------------------------------------------------------
rem Schließen der Textdatei
If HasUNOInterfaces (oDoc, "com.sun.star.util.XCloseable") then
oDoc.Close (True)
Else
oDoc.Dispose ()
End If
End Sub
Function GetPosActiveSheet As Integer
rem
----------------------------------------------------------------------
rem Tabellenblatt-Index auslesen
Dim ListOfSheets (1)
Dim i As Integer
GetNameOfAllSheets (ListOfSheets (), oDoc2)
For i = 0 to ubound (ListOfSheets ())
If ListOfSheets (i) = sTabName Then GetPosActiveSheet = i
Next
End Function
Sub GetNameOfAllSheets (NameOfSheets2 ())
Dim iA As Integer
Dim iAnzahl as Integer
'oDoc2 = CurrentComponent
oSheets2 = oDoc2.Sheets
iAnzahl = oSheets2.Count
iAnzahl = iAnzahl - 1
Redim NameOfSheets2 (iAnzahl)
For iA = 0 to iAnzahl
oSheet2 = oDoc2.Sheets (i)
NameOfSheets2 (i) = oSheet2.Name
Next
End Sub
----------end code--------------
Gruß
Kornelia
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]