Seite 1 von 1

Calc Zelleninhalte in .txt Datei schreiben

Verfasst: Di, 06.03.2018 19:59
von utzachaka
Hi,

ich benötige ein Makro, welches mir bestimmte Zellinhalte in eine .txt Datei schreibt.
In VBA habe ich ein Makro gefunden, welches anscheinend diesen Zweck erfüllt. Es funktioniert natürlich nicht für OpenOffice Calc.

Hier der Code:

Code: Alles auswählen

Sub TXT_Exportieren()
    Dim intCountRow As Integer
    Dim intCountCol As Integer
    Dim strHeader As Variant
   
    'Datei wird geöffnet oder angelegt, wenn sie nicht existiert.
    'oder einfach überschrieben, wenn sie bereits existiert
    Open "c:\test_1.txt" For Output As #1
   
    'Zuerst wird ein StringArray "strHeader" erzeugt, das die Spalten-
    'überschriften enthält. Dieses StringArray wird dann in am
    'Anfang jeder Zeile in die Textdatei geschrieben.
    strHeader = Range(Range("A1"), Cells(1, UsedRange.Columns.Count))
   
    For intCountRow = 2 To UsedRange.Rows.Count
        For intCountCol = LBound(strHeader) To UBound(strHeader, 2)
            Print #1, strHeader(1, intCountCol) & "=" & Cells(intCountRow, intCountCol).Text
        Next intCountCol
    Next intCountRow
   
    Close #1
End Sub
Wie muss dieses Makro für OpenOffice aussehen? Ich habe versucht mich da etwas einzulesen, aber allein der Range Befehl schaut völlig anders aus. Ich glaube auch, dass ich weitere Variablen benötige.
In diesem Makro hier wird UsedRange verwendet. Falls OpenOffice das nicht unterstützt, reicht auch Zelle G10:L40 z.B..

Kann mir das jemand umschreiben?


Mit freundlichen Grüßen

Re: Calc Zelleninhalte in .txt Datei schreiben

Verfasst: Di, 06.03.2018 21:05
von Stephan
z.B.:

Code: Alles auswählen

Sub Main
	iNumber = Freefile
	Open "d:\test_1.txt" For Output As #iNumber
	
	tcs = ThisComponent.Sheets().getByName("Tabelle1")
	cur = tcs.CreateCursor
	cur.GotoEndOfUsedArea(False)
	nRow = cur.getRangeAddress().endRow
	nCol = cur.getRangeAddress().endColumn 
     
	ueberschriften = tcs.getCellRangeByPosition(0,0,nCol,0).getDataArray()
	for i = 1 To nRow
		for j = 0 To nCol
			Print #iNumber, ueberschriften(0)(j) & "=" &  tcs.getCellByPosition(j,i).FormulaLocal
		next j
	next i
	Close #iNumber
	Msgbox "Datei wuirde erstellt."
End Sub

Gruß
Stephan

Re: Calc Zelleninhalte in .txt Datei schreiben

Verfasst: Di, 06.03.2018 21:56
von utzachaka
Top!

Funktioniert. Daran kann ich basteln und mein gewünschtes Ergebnis erzielen.

Vielen Dank!