Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1576to1580
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
Inhaltsverzeichnis

TXT aus Reiterinhalt, Tabs hinter den Werten

TXT aus Reiterinhalt, Tabs hinter den Werten
06.09.2017 16:58:15
kubden82
Moin,
ich habe folgendes Problem, bei einer Übertragung der Daten aus einem Sheet in eine .txt-Datei werden die Daten generell korrekt übertragen, jedoch werden an jede Zeile 11 Taps in der .txt angehängt, die ich in meinem Sheet und auch im VBA nicht finde.
Hier meine Codes:
Das ist der Gesamte Code für z.B. einen Monat:
Sub Werte_und_Mail()
Const WERTE$ = "P10:P29" ' Bereich in dem die Werte stehen
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet
Dim i As Integer
Dim TxtName As String
Dim strEmpfaenger As String
Dim strAn As String
Dim strBetr As String
Dim strBody As String
Dim strAttPfad As String
Dim strTh As String
Dim strCommand As String
Dim strBCC As String
Dim p1 As String
Dim p2 As String
Dim p3 As String
Dim p4 As String
Dim Blatt As Worksheet, wksActive As Worksheet
Dim s As String
p2 = Sheets(1).Cells(50, 2)
p3 = Sheets(1).Cells(50, 3)
p4 = Sheets(1).Cells(50, 4)
TxtName = "Werte.txt" ' so heißt die Datei später
' Werte werden aus den einzelnen Reitern in den Reiter Werte kopiert, vorher wird dieser  _
geleert
Application.ScreenUpdating = False
Sheets(1).Unprotect Password:=p2
Sheets("Werte").Unprotect Password:=p2
Sheets("Werte").Rows("2:65536").ClearContents
For i = 5 To Sheets.Count
Sheets(i).Unprotect Password:=p2
If Sheets(i).Cells(3, 23) = "JA" Then 'prüft ob überhaupt Werte vorliegen
Sheets(i).Range(WERTE).Copy
With Sheets("Werte")
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial _
(xlPasteValuesAndNumberFormats)
End With
Sheets(i).Range("W2") = "JA" ' Hinweis, dass der Datensatz schon einmal berechnet  _
wurde
End If
Next i
' Erstellung der txt-Datei mit dem Inhalt des Reiters Werte
TxtName = "Werte.txt" 'Zahl ändern
Sheets("Werte").Visible = True
Sheets("Werte").Columns("A:A").Copy
ChDir "C:\tmp\" ' tmp-Verzeichnis, da dieses immer vorhanden ist
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs TxtName, FileFormat:=xlText, CreateBackup:=False, local:=True
Application.DisplayAlerts = False
ActiveWorkbook.Close
Set Wb = Nothing: Set Ws = Nothing
' Werte für die E-Mail
strAn = "empfänger@testmail.de"
strBetr = Sheets(1).Range("F48") & " Werte Januar"
strBCC = "steuerung@testmail.de"
strBody = "Sehr geehrte Damen und Herren" & vbNewLine & vbNewLine & _
"anbei die Werte ihres Bereiches " & Sheets(1).Range("F48") & "." & vbNewLine & _
"Die enthaltenden Daten wurden automatisiert erhoben und hiermit an Sie weitergeleitet." &  _
vbNewLine & _
"Bei Fragen stehen wir Ihnen gerne zur Verfügung." & vbNewLine & vbNewLine & _
"Vielen Dank für Ihre Mühen."
' Code für die Konfiguration
strTh = "C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe " ' Thunderbird als E- _
Mail-Programm
strCommand = strCommand & " -compose " & "to=" & Chr(34) & strAn & Chr(34) ' Empfänger
strCommand = strCommand & ",subject=" & Chr(34) & strBetr & Chr(34) ' Betreff
strCommand = strCommand & ",body=" & Chr(34) & strBody & Chr(34) ' Text
strCommand = strCommand & ",bcc=" & Chr(34) & strBCC & Chr(34) ' BCC
strCommand = strCommand & ",attachment=" & "file:///C:\tmp\Werte.txt" 'Anhang
Shell strTh & strCommand, vbNormalFocus
'Blattschutz wieder einstellen
Set wksActive = ActiveSheet
For i = 1 To Sheets.Count
ActiveWorkbook.Sheets(i).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True,  _
Password:=p2
Next
For Each Blatt In Worksheets
Blatt.Activate
With ActiveWindow
.DisplayHeadings = False
End With
Next Blatt
wksActive.Activate
ActiveWindow.DisplayWorkbookTabs = False
Sheets(1).Visible = xlSheetVisible
Sheets(1).Select
ActiveSheet.Shapes("Flowchart: Connector 2").Fill.Visible = msoFalse
End Sub
Dieser Teil ist die Übertragung vom Reiter auf die .txt:
' Erstellung der txt-Datei mit dem Inhalt des Reiters Werte
TxtName = "Werte.txt" 'Zahl ändern
Sheets("Werte").Visible = True
Sheets("Werte").Columns("A:A").Copy
ChDir "C:\tmp\" ' tmp-Verzeichnis, da dieses immer vorhanden ist
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs TxtName, FileFormat:=xlText, CreateBackup:=False, local:=True
Application.DisplayAlerts = False
ActiveWorkbook.Close
Die zu übertragenden Werte stehen alle in der Spalte A und in Excel sind auch keine Leerzeichen oder Tabs hinter der Eintragung vorhanden.
Damit ihr vielleicht mehr sehen könnt, habe ich eine Werte.txt hier hochgeladen. Die Leerzeichen zwischendrin sind richtig und müssen genau so bestehen bleiben, es geht um die Tabs unter den letzten Eintragungen in einer Zeile.
Datei:
https://www.herber.de/bbs/user/116047.txt
Vielen Dank für eure Hilfe. Es kann manchmal etwas dauern, bis ich antworte, daher alle Gedanken erstmal hier rein.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TXT aus Reiterinhalt, Tabs hinter den Werten
07.09.2017 11:20:56
kubden82
komisch, wenn einfach die Spalte in Excel markiere, Strg+C, eine TXT öffne und Strg+V, dann wird es ohne die zusätzlichen TAB am Ende eingefügt? Jetzt komm ich gar nicht mehr weiter
AW: TXT aus Reiterinhalt, Tabs hinter den Werten
07.09.2017 16:40:59
ChrisL
Hi
Poste mal die Ausgangslage (Excel) womit man das Problem rekonstruieren kann.
Ich schätze die Codezeile, wo Spalte A kopiert wird greift nicht, weil du die ganze Mappe als TXT speicherst. Vielleicht ist in einer der vermeindlich leeren Spalten noch ein Leerzeichen oder so.
So ermittelst du den aus Excel-Sicht benutzten Bereich:
Sub t()
MsgBox ActiveSheet.UsedRange
End Sub
cu
Chris
Anzeige
AW: TXT aus Reiterinhalt, Tabs hinter den Werten
07.09.2017 21:12:35
kubden82
hier einmal meine Testdatei: https://www.herber.de/bbs/user/116108.xlsm
wenn ich auf dem Reiter einfach die Spalte A manuell markiere, kopiere und in eine leere TXT einfüge, ist das Ergebnis wie gewollt :-(
AW: TXT aus Reiterinhalt, Tabs hinter den Werten
08.09.2017 08:31:18
ChrisL
Hi
Im Testmakro fehlte noch "Address"
Sub t()
MsgBox ActiveSheet.UsedRange.Address
End Sub

Du siehst der Bereich geht bis Spalte L. Darum Spalten B:L einmalig löschen (ganze Spalte, nicht nur den Inhalt) und danach sollte es laufen.
cu
Chris
AW: TXT aus Reiterinhalt, Tabs hinter den Werten
08.09.2017 08:40:34
ChrisL
Hi
Übrigens DisplayAlerts stellst du zwei mal auf False und schaltest nicht wieder ein.
cu
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige