Calc Zelleninhalte in .txt Datei schreiben

Antwort erstellen


Um automatische Eingaben zu unterbinden, musst du die nachfolgende Aufgabe lösen.

BBCode ist eingeschaltet
[img] ist ausgeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Calc Zelleninhalte in .txt Datei schreiben

Re: Calc Zelleninhalte in .txt Datei schreiben

von utzachaka » Di, 06.03.2018 21:56

Top!

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

Vielen Dank!

Re: Calc Zelleninhalte in .txt Datei schreiben

von Stephan » Di, 06.03.2018 21:05

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

Calc Zelleninhalte in .txt Datei schreiben

von utzachaka » Di, 06.03.2018 19:59

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

Nach oben