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.