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]

Antwort per Email an