Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
820to824
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
820to824
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro anpassen: Export to txt-File

Makro anpassen: Export to txt-File
20.11.2006 14:49:03
Peter
Hallo!
Ich möchte aus einer Excel-Datei Inhalte nach txt kopieren.
Dazu habe ich im Forum ein Makro gefunden. Das habe ich versucht
anzupassen.
Bei drei Sache komme ich leider nicht zurecht:
- Wie ändere ich den Dateinamen noch so ab, dass vor dem Datum der Inhalt in F2 steht, als abcd_20_11_2006.
- Wenn die Datei einmal besteht wird sich nicht überschrieben. Wie kann man das machen?
- Im Moment wird nur Spalte A eingefügt. Ich brauche das aber von A-K.
Wäre genial, wenn mir da jemand helfen würde!
Danke.
Option Explicit

Sub exportText()
Dim strText As String
Dim lastRow As Long, lRow As Long
Dim sFile As String
Dim PfadName As String
PfadName = "C:\Temp\"
sFile = PfadName & Format(Date, "DD_MM_YYYY") & ".txt" 'Name und Pfad der Textdatei
lastRow = IIf(Range("A65536") <> "", 65536, Range("A65536").End(xlUp).Row)
Open sFile For Output As #1
For lRow = 17 To lastRow
If Len(Trim$(Cells(lRow, 1))) > 0 Then
strText = Replace(Trim$(Cells(lRow, 1)), " ", ",")
Print #1, strText
End If
Next
Close #1
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro anpassen: Export to txt-File
20.11.2006 17:42:37
Erich
Hallo Peter,
sollen die Werte einer Zeile neben- oder untereinander in das Textfile geschrieben werden?
Diese Prozedur schreibt sie untereinander:
Option Explicit
Sub exportText()
Dim PfadName As String, sFile As String
Dim intNr As Integer
Dim lastRow As Long, lRow As Long, iCol As Integer
Dim strText As String
Const strTyp As String = ".txt"
PfadName = "F:\exc\w-w-w\Tmp\"
sFile = PfadName & Range("F2") & Format(Date, "_DD_MM_YYYY") 'Pfad und Name der Textdatei
If Dir(sFile & strTyp) > "" Then
intNr = 1
While Dir(sFile & "-v" & Format(intNr, "00") & strTyp) > ""
intNr = intNr + 1
If intNr > 99 Then
MsgBox "Zu viele Dateien mit dem gleichen Namen - die letzte Version ist" _
& vbLf & vbLf & sFile & "-v" & Format(intNr - 1, "00") & strTyp
Exit Sub
End If
Wend
sFile = sFile & "-v" & Format(intNr, "00")
End If
sFile = sFile & strTyp                                         ' Dateityp .txt
lastRow = IIf(Range("A65536") <> "", 65536, Range("A65536").End(xlUp).Row)
Open sFile For Output As #1
For lRow = 17 To lastRow
For iCol = 1 To 11
If Len(Trim$(Cells(lRow, iCol))) > 0 Then
strText = Replace(Trim$(Cells(lRow, iCol)), " ", ",")
Print #1, strText
End If
Next iCol
Next lRow
Close #1
End Sub
Wenn das Textfile schon existiert, wird eine Versionsnummer angehängt - max. 99 Versionen (+ die ohne Versionsnr.) sind möglich.
Gefährlich finde ich die Ersetzung des Leerzeichens duch ein Komma:
Wenn in B17 die Zahl 1,23 und in C17 der Text '1 23' steht, steht im Textfile zweimal 1,23.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Makro anpassen: Export to txt-File
21.11.2006 08:10:38
Peter
Hallo Erich,
erstmal vielen Dank.
Nein, die Spalten sollen auch im Textfile nebeneinander sein.
Die Spalten können auch durch Leerzeichen getrennt bleiben, also auch nicht
wie hier. Ganz schön viel zu beachten...kenne mich leider nicht so aus.
Kann man das auch so machen, dass das File einfach überschrieben wird wenn es schon existiert? Also ohne Versionsnummer?
Danke und beste Grüße,
Peter
AW: Makro anpassen: Export to txt-File
21.11.2006 09:40:21
Erich
Hallo Peter,
habe ich hier alle Wünsche berücksichtigt?
Option Explicit
Sub exportText2()
Dim PfadName As String, sFile As String
Dim intNr As Integer
Dim lastRow As Long, lRow As Long, iCol As Integer
Dim strText As String
Const strTyp As String = ".txt"
PfadName = "F:\exc\w-w-w\Tmp\"
sFile = PfadName & Range("F2") & Format(Date, "_DD_MM_YYYY") 'Pfad und Name der Textdatei
'                                 Folgendes ist auskommentiert - Textfile wird überschrieben
'  If Dir(sFile & strTyp) > "" Then
'     intNr = 1
'     While Dir(sFile & "-v" & Format(intNr, "00") & strTyp) > ""
'        intNr = intNr + 1
'        If intNr > 99 Then
'           MsgBox "Zu viele Dateien mit dem gleichen Namen - die letzte Version ist" _
'              & vbLf & vbLf & sFile & "-v" & Format(intNr - 1, "00") & strTyp
'           Exit Sub
'        End If
'     Wend
'     sFile = sFile & "-v" & Format(intNr, "00")
'  End If
sFile = sFile & strTyp                                         ' Dateityp .txt
lastRow = IIf(Range("A65536") <> "", 65536, Range("A65536").End(xlUp).Row)
Open sFile For Output As #1
For lRow = 17 To lastRow
strText = ""
For iCol = 1 To 11
'        If Len(Trim$(Cells(lRow, iCol).Text)) > 0 Then
If Len(strText) > 0 Then strText = strText & " "   ' Leerzeichen als Spaltentrenner
strText = strText & Replace(Trim$(Cells(lRow, iCol)), " ", ",")
'        End If
Next iCol
If Trim$(strText) > "" Then Print #1, strText
Next lRow
Close #1
End Sub
(Die Auskommentierung der zwei Zeilen unten im Makro führt dazu, dass auch nach leeren Zellen
Leerzeichen als Trenner ausgegeben werden - dann stehen mehrere Leerzeichen hintereinander.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Danke. Perfekt! o.T.
21.11.2006 09:56:48
Peter
...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige