Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Export Daten einzelner Zellen in ein TXT File

Export Daten einzelner Zellen in ein TXT File
13.11.2007 14:19:00
Bernd
Hello an alle Excel Götter,
meine Unwissenheit hat mich mal wieder eingeholt....
folgendes Problem:
ich möchte aus einer Tabelle die werte aus Ax, Bx und Cx gerne automatisch in ein Textfile (der Pfad und Name liegt z.b. in Dx ) in die Zeile 1,2und 3 einfügen (als Texteditor verwende ich Notepad++) oder in ein neues Textfile exportieren (und dann von Hand in das existierende File einfügen).
Danke an alle im Vorraus

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Export Daten einzelner Zellen in ein TXT File
13.11.2007 15:22:00
Bernd
etwas ähnliche hab ich hier gefunden bekomme es aber nicht umgestrickt ....
https://www.herber.de/mailing/145401h.htm
Gruß Bernd

AW: Export Daten einzelner Zellen in ein TXT File
13.11.2007 18:11:39
Tino
Hallo,
da ich nicht weis wie deine Textdatei später aussehen soll, hier mal ein erster Ansatz mit deinen Beispielcode.

Sub XLS2TXT()
Dim iRow As Long, Zell As Long
On Error GoTo ERRORHANDLER
iRow = 1
Zell = Range("Ax1").Column
Close
Open Range("Dx1").Value For Output As #1
Do While Cells(iRow, Zell).Value  ""
Print #1, Cells(iRow, Zell).Value & Cells(iRow, Zell + 1).Value & Cells(iRow, Zell + 2). _
Value
iRow = iRow + 1
Loop
Close
MsgBox "Die Dateien wurden angelegt!"
Exit Sub
ERRORHANDLER:
MsgBox "Die Dateien konnten nicht angelegt werden!"
End Sub


Gruss
Tino

Anzeige
AW: Export Daten einzelner Zellen in ein TXT File
14.11.2007 08:25:30
Bernd
Hallo Timo,
die TXT Datei ist ein Parameter File wo einfach in die ersten 3 Zeilen die SNr. der Teile eingefügt werden sollen die in Bx, Cx und Dx stehen und das dazugehörige File (der Pfad und Name ) liegt in Fx
das ist schon alles....
Gruß Bernd

AW: Export Daten einzelner Zellen in ein TXT File
14.11.2007 12:15:49
selli
hallo tino,
versuchs mal hiermit:

Sub txt_erst()
Dim sFile As String
Dim ff As Byte
Dim s
ff = FreeFile
With ActiveSheet
sFile = Cells(1, 6) 'vollständiger Dateiname in Zelle F1 zBsp. d:\test.txt
Open sFile For Output As ff
For s = 2 To 4 'Schleife durchläuft dei spalten B bis D
Print #1, Cells(1, s)
Next s
Close #ff
End With
End Sub


Anzeige
AW: Export Daten einzelner Zellen in ein TXT File
14.11.2007 15:03:00
Bernd
bleibt bei Punkt:
Open sFile For Output As ff stehen Laufzeitfehler 75
im Debugger stehen und wenn ich mit der Maus drüber gehen zeigt er keinen Wert ff=1
Gruß Bernd

AW: Export Daten einzelner Zellen in ein TXT File
14.11.2007 15:10:35
Bernd
war ein Fehler meinerseit die Werte standen nicht in der ersten Zeile
giebt es eine möglichkeit erst die Zeile zu markieren die er bearbeiten soll und dann das geänderte Macro ausführen.
z.b. über dim as Range oder so ?
und die restlichen werte des TXT files müssen erhalten bleiben d.h. die Werte aus der Excel Tabelle sollen nur in die ersten Zeilen dazugefügt werden und der Rest nicht überschrieben
danke im vorraus

Anzeige
AW: Export Daten einzelner Zellen in ein TXT File
14.11.2007 17:45:28
selli
hallo bernd,
der folgende code ersetzt die ersten 3 zeilen deiner vorhandenen textdatei aus F1 durch die werte der zellen B1 C1 und D1.

Sub InTextDatei()
Dim sFile As String
Dim intRow As Integer
Dim strText As String
Dim s
Dim z
z = 1
Close
sFile = Cells(1, 6) 'vollständiger Dateiname in Zelle F1 zBsp. d:\test.txt
Open sFile For Input As #1
Open "d:\Test2.txt" For Output As #2
Do Until EOF(1)
Line Input #1, strText
If z > 3 Then
Print #2, strText
Else
If z = 1 Then
For s = 2 To 4 'Schleife durchläuft dei spalten B bis D
Print #2, Cells(1, s)
Next s
End If
End If
z = z + 1
Loop
Close
Kill sFile
Name "d:\Test2.txt" As sFile
End Sub


gruß selli

Anzeige
AW: Export Daten einzelner Zellen in ein TXT File
15.11.2007 10:58:00
Bernd
Funktioniert schon nicht schlecht so, die ersten 4 Zeilen werden nach unten geschoben (könnten aber auch gelöscht werden) und die neuen eingefügt, das passt schon aber.......
alles was nach der 4. Zeile kommt wird gelöscht sollte aber erhalten bleiben ähnlich einem Schiebe Register es sollen eigentlich immer nur die Zeile 1-4 im Txt File überschrieben werden mit den neuen Werten ab Zeile 5 muß das TXT File erhalten bleiben (evtl. erst temp einlesen die ersten 4 Zeilen ersetzen und dann wieder ausgeben)
und einen 2. Punkt hätte ich noch das ganze funktioniert gut in der 1. Zeile kann man es aber so gestallten das man die Zeile markiert und er dann die werte aus dieser Zeile verwendet, also erst die Zeile markiert und dann das Makro ausführt ..... bin leider noch zu unerfahren um dies zu lösen gerade was der Im und Export in TXT Files angeht.......finde es ja schon genial was ihr hier zaubert.....
lG Bernd

Anzeige
AW: Export Daten einzelner Zellen in ein TXT File
15.11.2007 11:42:00
selli
also bernd,
zunächst war doch nur von den ersten 3 zeilen die überschrieben werden sollen die rede, jetzt sind es aber plötzlich 4. ist aber nicht so schlimm, mußt nur genau sagen, was du willst.
mein letzter code erstzt doch wie gewünscht die ersten 3 Zeilen und löscht sie nicht. das umzuschreiben auf die ersten 4 zeilen mache ich. die sache mit der markierung mache ich dir auch. bleibt die frage, ob das zu ändernde textfile in der selben zeile wie die markierung steht?
mach doch mal kurz eine darstellung, wie z.bsp. 3 zeilen in deiner datei aussehen und welche werte du genau im geänderten textfile sehen möchtest.
gruß selli

Anzeige
4zeilen im textfile aus markierter Zeile xls
15.11.2007 12:00:01
selli
hallo bernd,
hier mein geänderter code:

Sub InTextDatei()
On Error Resume Next
Dim sFile As String
Dim intRow As Integer
Dim strText As String
Dim s
Dim z
Dim a
a = Selection.Row
If Cells(a, 6)  "" Then
z = 1
Close
sFile = Cells(a, 6) 'vollständiger Dateiname in Zelle F1 zBsp. d:\test.txt
Open sFile For Input As #1
Open "d:\Test2.txt" For Output As #2
Do Until EOF(1)
Line Input #1, strText
If z > 4 Then
Print #2, strText
Else
If z = 1 Then
For s = 2 To 5 'Schleife durchläuft dei spalten B bis D
Print #2, Cells(a, s)
Next s
End If
End If
z = z + 1
Loop
Close
Kill sFile
Name "d:\Test2.txt" As sFile
Else
Exit Sub
End If
End Sub


gruß selli

Anzeige
AW: 4zeilen im textfile aus markierter Zeile xls
15.11.2007 16:49:00
Bernd
Hallo Selli
du bist super das erst mal vor weg
funktioniert einwandfrei ....!!!!!!!!!!
1000 Dank die Adaptierung bekomme ich selber hin !!!!!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Exportiere Daten aus Excel in ein TXT-File


Schritt-für-Schritt-Anleitung

Um Daten aus bestimmten Zellen in ein TXT-File zu exportieren, kannst Du das folgende VBA-Makro verwenden. Dieses Beispiel geht davon aus, dass Du die Werte aus den Zellen B1, C1 und D1 in ein Textfile exportieren möchtest, dessen Pfad in F1 angegeben ist.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu: Klicke auf „Einfügen“ und dann auf „Modul“.
  3. Kopiere den folgenden Code und füge ihn in das Modul ein:
Sub InTextDatei()
    Dim sFile As String
    Dim intRow As Integer
    Dim strText As String
    Dim s
    Dim z
    z = 1
    sFile = Cells(1, 6) 'vollständiger Dateiname in Zelle F1
    Open sFile For Output As #1
    For s = 2 To 4 'Schleife durchläuft die Spalten B bis D
        Print #1, Cells(1, s)
    Next s
    Close #1
    MsgBox "Daten wurden erfolgreich in das TXT-File exportiert!"
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf „Ausführen“ klickst.

Häufige Fehler und Lösungen

  • Laufzeitfehler 75: Dieser Fehler tritt auf, wenn der angegebene Dateipfad nicht existiert oder nicht korrekt ist. Stelle sicher, dass der Pfad in Zelle F1 korrekt angegeben ist und das Verzeichnis existiert.

  • Werte werden nicht exportiert: Überprüfe, ob die Zellen B1, C1 und D1 tatsächlich Werte enthalten. Wenn diese leer sind, wird nichts exportiert.

  • Das TXT-File wird überschrieben: Wenn Du bestehende Inhalte im TXT-File behalten möchtest, musst Du den Code anpassen, um nur die ersten Zeilen zu ersetzen, anstatt das gesamte File zu überschreiben.


Alternative Methoden

Falls Du eine einfachere Methode bevorzugst, kannst Du die Daten auch manuell kopieren und in einen Texteditor wie Notepad++ einfügen. Eine weitere Möglichkeit ist die Verwendung der Excel-Funktion „Speichern unter“, um die Datei direkt als TXT zu speichern:

  1. Wähle „Datei“ > „Speichern unter“.
  2. Wähle den Dateityp „Text (Tabstopp-getrennt) (*.txt)“.
  3. Wähle den Speicherort und klicke auf „Speichern“.

Praktische Beispiele

Beispiel 1: Exportiere die ersten drei Zellen in ein TXT-File

Verwende das oben bereitgestellte Makro, um die Werte aus B1, C1 und D1 in die ersten drei Zeilen eines TXT-Files zu exportieren.

Beispiel 2: Behalte bestehende Daten im TXT-File

Wenn Du sicherstellen möchtest, dass die Daten unterhalb der ersten Zeilen im TXT-File erhalten bleiben, kannst Du den folgenden Code verwenden, um nur die ersten drei Zeilen zu ersetzen:

Sub UpdateTextFile()
    Dim sFile As String
    Dim strText As String
    Dim lineNum As Integer
    Dim z As Integer

    sFile = Cells(1, 6) 'vollständiger Dateiname in Zelle F1
    Open sFile For Input As #1
    Open "d:\Temp.txt" For Output As #2

    z = 1
    Do Until EOF(1)
        Line Input #1, strText
        If z <= 3 Then
            Print #2, Cells(1, z + 1) 'Ersetze Zeilen mit Werten aus B1, C1, D1
        Else
            Print #2, strText 'Behalte den Rest des Textes
        End If
        z = z + 1
    Loop
    Close #1
    Close #2
    Kill sFile
    Name "d:\Temp.txt" As sFile
End Sub

Tipps für Profis

  • Verwende dynamische Zellreferenzen: Anstatt feste Zellreferenzen zu verwenden, kannst Du die Funktion Selection nutzen, um die aktuell ausgewählte Zeile zu verwenden. So wird Dein Makro flexibler.

  • Debugging: Nutze Debug.Print im VBA-Code, um den Inhalt der Variablen während der Ausführung anzuzeigen. Dies hilft, Probleme schnell zu identifizieren.

  • Sichere Deine Daten: Bevor Du ein Makro ausführst, erstelle immer eine Sicherungskopie Deiner Excel-Datei, um Datenverluste zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich Daten aus einer bestimmten Zeile exportieren?
Du kannst den Code so anpassen, dass er die Werte aus der aktuell markierten Zeile verwendet. Verwende dazu Selection.Row, um die Zeilennummer zu erhalten.

2. Kann ich das TXT-File direkt in Excel öffnen?
Ja, Du kannst ein TXT-File in Excel öffnen, indem Du „Daten“ > „Aus Text/CSV“ wählst und dann die Datei auswählst. Excel wird den Inhalt in eine Tabelle importieren.

3. Wie kann ich das TXT-File nach dem Export überprüfen?
Öffne das TXT-File mit einem Texteditor wie Notepad++ oder sogar direkt mit Excel, um den Inhalt zu überprüfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige