Anzeige
Archiv - Navigation
936to940
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
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten in .txt-Datei

Spalten in .txt-Datei
01.01.2008 16:43:02
Wolfgang
Hallo,
aus dem jeweils aktiven Tabellenblatt würde ich gerne die Spalten A und I in eine Textdatei exportieren. Dabei sollte aber zunächst die Spalte I und dann die Spalte A in der Reihenfolge stehen. Eine bereits bestehende Textdatei sollte ohne Nachfrage überschrieben werden. Ich bekomme den untenstehenden Code nicht darauf angepaßt und wäre für Hilfestellung aus dem Forum sehr dankbar.
Gruß - Wolfgang

Sub writtotest()
strUser = Environ("Username")
strUser = Trim$(Replace(strUser, ".GST", ""))
Dim actcell As Range
Open "C:\Dokumente und Einstellungen\" & strUser & "\Desktop\test.txt" For Append Access Write  _
Lock Write As #1
For Each actcell In Range("C1:C1000")
If Not (IsEmpty(actcell.Value) Or actcell.Value = "") Then
Print #1, actcell.Value; "," & actcell.Offset(0, 6).Value & "," & actcell.Offset(0, 3).Value
End If
Next actcell
Close #1
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Spalten in .txt-Datei
01.01.2008 18:13:00
Uduuh
Hallo,
ollte so gehen:

Sub writtotest()
Dim ActCell As Range
strUser = Environ("Username")
strUser = Trim$(Replace(strUser, ".GST", ""))
Dim ActCell As Range
Open "C:\Dokumente und Einstellungen\" & strUser & "\Desktop\test.txt" For Output As #1
For Each ActCell In Range("I1:I1000")
If ActCell.Value  "" Then
Print #1, ActCell.Value & "," & ActCell.Offset(0, -8).Value
End If
Next ActCell
Close #1
End Sub


Gruß aus’m Pott
Udo

Änderung denkbar?
01.01.2008 20:26:00
Wolfgang
Hallo Udo,
zunächst herzlichen Dank für Deine Rückmeldung auch Dir ein frohes Jahr 2008; Dein Code läuft super. Beim Testen fiel mir ein, dass ich auf dem Wege vielleicht auch auf eine Datei "Seriendruck" zugreifen könnte. Der Pfad befindet sich in der aktuellen Arbeitsmappe Tabelle "Zeile", Zelle A 30; Ich hatte mir gedacht, das anpassen zu können.- Gepfiffen auch, irgendetwas mache ich verkehrt. Die Umstellung soll eigentlich den Zugriff auf die Tabelle "Seriendruck" im Hintergrund und das Herauskopieren bzw. generieren der Textdatei bewirken. Ich bekomme aber immer nur eine leere Textdatei. Hast Du da Ideen, was ich da verkehrt mache? - Danke schon jetzt wieder für Deine Rückmeldung.
Gruß - Wolfgang

Sub Textdatei()
Dim wkbBasis As Workbook
Dim wksBasis As Worksheet
Dim wkbBrief As Workbook
Dim wksBrief As Worksheet
Dim strPfad As String
Dim strDateiName As String
Dim lngLastRow As Long
Dim intI As Integer
Dim Flag As Boolean
Dim ActCell As Range
Set wkbBasis = ThisWorkbook
Set wksBasis = wkbBasis.Worksheets("Zeile")
Application.ScreenUpdating = False
' Pfad in A30 prüfen
strDateiName = "\" & "Seriendruck.xls"
If Not IsEmpty(wksBasis.Cells(30, 1)) Then
strPfad = wksBasis.Cells(30, 1)
If Not DateiVorhanden(strPfad & strDateiName) Then
MsgBox "Die Datei " & strDateiName & " wurde nicht gefunden !"
Exit Sub
Else
' ggf hier weitere Prüfungen
' z.B. ob Datei bereits geöffnet und gerade bearbeitet wird
End If
Else
MsgBox "Die Angaben zum Verzeichnispfad fehlen noch !"
Exit Sub
End If
Set wkbBrief = Workbooks.Open(strPfad & strDateiName)
Flag = False
For intI = 1 To wkbBrief.Worksheets.Count
If Worksheets(intI).Name = "Tabelle1" Then 'passendes Arbeitsblatt gefunden
Set wksBrief = wkbBrief.Worksheets(intI)
Flag = True
Exit For
End If
Next intI
If Flag = False Then
MsgBox "Das Tabellenblatt für den Serienbrief wurde nicht gefunden ! Es muß immer Tabelle1   _
_
heißen !"
Exit Sub
End If
strUser = Environ("Username")
strUser = Trim$(Replace(strUser, ".GST", ""))
'Dim ActCell As Range
Open "C:\Dokumente und Einstellungen\" & strUser & "\Desktop\Serienbrief.txt" For Output As # _
_
1
For Each ActCell In Range("I3:I1000")
If ActCell.Value  "" Then
Print #1, ActCell.Value & " " & ActCell.Offset(0, -8).Value
End If
Next ActCell
Close #1
Application.DisplayAlerts = False
Application.DisplayAlerts = True
ActiveWorkbook.Close
Application.ScreenUpdating = True
Set wksBrief = Nothing
Set wkbBrief = Nothing
End Sub


Anzeige
AW: Änderung denkbar?
01.01.2008 21:04:00
Uduuh
Hallo,
wenn ich das richtig verstanden habe:
For Each ActCell In wksBrief.Range("I3:I1000")
Gruß aus’m Pott
Udo

Danke Udo, läuft super
02.01.2008 09:57:29
Wolfgang
Hallo Udo,
sorry, dass ich mich jetzt erst melde - ich hatte noch mit Deiner Ergänzung getestet und bekam es zunächst nicht hin. An ganz anderer Stelle hatte ich noch einen "Bock" geschossen, den ich dann soeben entdeckte. Nun läuft der Code super. Danke für Deine Unterstützung !
Herzliche Grüße
Wolfgang

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige