Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabelle in Textdatei speichern

Tabelle in Textdatei speichern
18.06.2008 13:26:51
Saphira
Hallo,
Ich habe ein Problem. Ich habe eine Tabelle mit 6 Spalten und ca. 20077 Zeilen. Diese möchte ich jetzt in einer Textdatei speichern. Die Ternnung der Spalten soll durch ein Semikolon erfolgen.
Und jede Zeile soll auch untereinander sein.
Mein Problem momentan, ich schaffe es diese Tabelle in eine Textdatei zu speichern mittels .cvs und dann umbenennen in .txt, aber leider werden auch die Zeilen ohne Inhalt mit in der Textdatei gespeicher.
Diese Zeilen kann ich absolut nicht gebrauchen, wie kann ich diese wegbekommen?
Oder gibt es noch ne andere Möglichkeit die Werte aus der Tabelle in textdatei zu speichern, ohne leere Spalten/zeilen mit abzuspeichern.
gruß
Saphira

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle in Textdatei speichern
18.06.2008 22:21:47
fcs
Hallo Saphira,
sortiere deine Tabelle aufsteigend, dann sind alle leeren Zeilen ans Ende der Liste nicht mehr in der Text-Datei gespeichert werden. Falls dem nicht so ist, dann sind deine Zeilen nicht leer, sondern enthalten einen Leerstring. Diese Zeilen sind dann alle am Anfang der Liste und du muß sie markieren und löschen.
Falls du du die Reihenfolge der Zeilen zwingend beibehalten muss, dann muss du zunächst in einer Hilfsspalte fortlaufende Nummern eintragen 1, 2 in Zeilen 1 und 2 dann per Ziehn bis zum Ende der Liste gurchnummerieren.
Jetzt Tabelle sortieren, so das Leerzellen am Ende sind. Dann alle Leerzeilen markierrn und löschen.
Dann Tabelle nach der Hilfsspalte sortieren und Hilfsspalte wieder löschen.
Jetzt als CSV-Speichern.
Die Alternative zu dieser Handarbeit wäre ein Makro. Dies lohnt sich aber nur wenn du öfters solche Dateien im Text-Format speichern muss.
Gruß
Franz

Anzeige
AW: Tabelle in Textdatei speichern
18.06.2008 22:27:49
Josef
Hallo Saphira,
eine Möglichkeit.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub TabInTXT()
Dim rng As Range, rngDel As Range, objWs As Worksheet
Dim varTmp As Variant
Dim lngRow As Long, lngIndex As Long
Dim strFile As String, strTmp As String

1 On Error GoTo ErrExit
2 GMS

3 strFile = "F:\Temp\TabInTxt.txt" 'Pfad und Name der Textdatei - Anpassen!

4 Set rng = Range("A1:F" & Cells(Rows.Count, 1).End(xlUp).Row)
5 Set objWs = ThisWorkbook.Worksheets.Add
6 rng.Copy objWs.Range("A1")

7 objWs.Range("G1:G" & rng.Rows.Count).FormulaR1C1 = "=IF(COUNTA(RC[-6]:RC[-1])<6,TRUE,"""")"

8 If Application.CountIf(objWs.Range("G1:G" & rng.Rows.Count), True) > 0 Then
9 Set rngDel = objWs.Range("G1:G" & rng.Rows.Count).SpecialCells(xlCellTypeFormulas, 4)
10 End If

11 If Not rngDel Is Nothing Then rngDel.EntireRow.Delete

12 objWs.Range("G1:G" & objWs.Cells(Rows.Count, 7).End(xlUp).Row).FormulaR1C1 = _
    "=RC[-6]&"";""&RC[-5]&"";""&RC[-4]&"";""&RC[-3]&"";""&RC[-2]&"";""&RC[-1]"

13 varTmp = objWs.Range("G1:G" & objWs.Cells(Rows.Count, 7).End(xlUp).Row)

14 objWs.Delete

15 Open strFile For Output As #1

16 For lngRow = 1 To UBound(varTmp, 1)

17 strTmp = varTmp(lngRow, 1)

18 If lngRow < UBound(varTmp, 1) Then
19 Print #1, strTmp
20 Else
21 Print #1, strTmp;
22 End If

23 Next

24 Close #1

ErrExit:
25 GMS True
26 If Err.Number > 0 Then
27 MsgBox "Es ist ein Fehler in Zeile " & CStr(Erl) & " aufgetreten!" & vbLf & _
    vbLf & "Fehlernummer:" & vbTab & Err.Number & vbLf & "Fehlerquelle:" & _
    vbTab & Err.Source & vbLf & "Beschreibung:" & _
    vbTab & Err.Description & Space(25), vbExclamation, "Fehler"
28 End If
29 Err.Clear
End Sub

Sub GMS(Optional ByVal Modus As Boolean = False)
Static lngCalc As Long

With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Modus Then
        .Calculation = IIf(lngCalc <> 0, lngCalc, xlCalculationAutomatic)
    Else
        lngCalc = .Calculation
        .Calculation = xlCalculationManual
    End If
    .Cursor = IIf(Modus, -4143, 2)
    .CutCopyMode = False
End With

End Sub


Gruß Sepp



Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige