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

Marko - Abspeichern als txt.Datei

Marko - Abspeichern als txt.Datei
02.12.2022 11:45:11
Carl
Hallo Zusammen,
ich habe folgendes Problem. Berichte die ich über uns ERP - Systeme erstelle werden zum Teil als .txt oder .csv Datei ausgeschmissen. Da ich mehrere Berichte am Tag rausfahren muss und diese auf einander zugreifen, habe ich die Weiterverarbeitung dieser Daten mittels PowerQuery gemacht.
Damit ich nicht jeden Bericht einzeln abspeichern muss habe ich mir für die Speicherung der Berichte ein Makro geschrieben. Je nach Dateiname und Dateiendung werden die Berichte an den bestimmten Speicherort abgespeichert. Klappt auch alles soweit so gut.
Jetzt habe ich jedoch einen Fehler bei der Weiterverarbeitung gemacht. Ich habe die Berichte zu anfangs immer "händisch" selber an den Speicherort über "Speichern unter" abgelegt und darauf aufbauend die Berichte in PowerQuery erstellt.
Bei der Speicherung der .txt Berichte mittels Marko werden jetzt jedoch ärgerlicherweise Anfühurngszeichen mit abgespeichert und Sonderzeichen wie Umlaute oder ß werden "falsch" abgespeichert. Dies war mir vorher nicht bewusst, und habe das bei der Verarbeitung in PowerQuery nicht mit berücksichtigt. Ich müsste jetzt alle erstellten Berichte in PowerQuery entsprechend anpassen. Da dies jedoch verdammt viele sind, würde ich lieber das Makro anpassen.
Ich habe auch schon dazu was im Netzt gefunden, nur wird mir leider nicht ganz klar bzw. mir ist nicht ganz klar, wo ich das in mein Marko einfügen müsste, damit die Speicherung ohne Anführungszeichen funktioniert.
Vielen Dank im Voraus für eure Hilfe
Hier zunächst der Code den ich geschrieben habe, weiter unten dann der Code den ich im Netz gefunden habe:

Sub CloseOtherWorkbook()
'this is to close all workbooks - let's figure how to do it
Dim y As String
Dim wk As Workbook: Set wk = ActiveWorkbook
Dim Dateiname As String
Dim fileExtension As String
'Windows("KW35.xlsm").Activate
Application.DisplayAlerts = False
fileExtension = Right(wk.FullName, Len(wk.FullName) - InStrRev(wk.FullName, "."))
'Dateiendung ermitteln
For Each wk In Workbooks                                'Durchläuft alle offenen Arbeitsmappen in Excel
fileExtension = Right(wk.FullName, Len(wk.FullName) - InStrRev(wk.FullName, "."))
wk.Activate
If wk.Name  ThisWorkbook.Name Then
If fileExtension = "txt" Then                   'wenn Dateiendung .txt nimm den Wert aus aus A2 bzw. A3 und "kürze" diesen auf den Berichtsnamen zusammen
If Range("A2").Value  "" Then
y = Range("a2").Value
Dateiname = Trim(Mid(y, 24, 120))
ActiveWorkbook.SaveAs ("G:\S&OP\1 Operation Planning\Dashboard\Datengrundlage\" & Dateiname)    ' Angabe des Speicherortes
ActiveWorkbook.Close
Else
y = Range("A3").Value
Dateiname = Trim(Mid(y, 24, 120))
ActiveWorkbook.SaveAs ("G:\S&OP\1 Operation Planning\Dashboard\Datengrundlage\" & Dateiname)
ActiveWorkbook.Close
End If
Else
If fileExtension = "csv" Then
ActiveWorkbook.SaveAs ("G:\S&OP\1 Operation Planning\Dashboard\Datengrundlage\") & wk.Name
ActiveWorkbook.Close
End If
End If
End If
Next wk
End Sub

Option Explicit
Sub AlsTextSpeichernMitSemikolon()
Dim lngRow As Long             ' Zeilenzähler
Dim lngLastRow As Long         ' genutzte Zeilenzahl
Dim intColumn As Integer       ' Spaltenzähler
Dim strPfad As String          ' Pfad zur Datei
Dim strName As String          ' Name der Textdatei
Dim strValue As String         ' temporäre Aufnahme der Werte einer Zeile
strPfad = "E:\Temp\"
strName = "Textdatei.txt"
Close
Open strPfad & strName For Output As #1
With ActiveSheet
lngLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
For lngRow = 1 To lngLastRow
For intColumn = 1 To Range("a1").End(xlToRight).Column
strValue = strValue & .Cells(lngRow, intColumn).Text & "; "
Next
Print #1, strValue
strValue = ""
Next lngRow
End With
Close
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Marko - Abspeichern als txt.Datei
02.12.2022 11:55:53
Rudi
Hallo,
versuchs mal mit
ActiveWorkbook.SaveAs Filename:="G:\S&OP\1 Operation Planning\Dashboard\Datengrundlage\" & Dateiname, Local:=True
Gruß
Rudi
AW: Marko - Abspeichern als txt.Datei
03.12.2022 10:01:00
Carl
Hallo Rudi,
danke für die schnelle Antwort. Hat geklappt. Meine Frage, kannst du mir evtl. noch erklären, was jetzt genau der Unterschied in den beiden Codezeilen ist?
AW: Marko - Abspeichern als txt.Datei
03.12.2022 10:13:10
Oberschlumpf
Hi,
na, der Unterschied ist der letzte - extra fett formatierte - Parameter.
Und was dieser bedeutet, kannst du auch hier nachlesen:
https://learn.microsoft.com/de-de/office/vba/api/excel.workbook.saveas
Hab ich mit Hilfe von Google gefunden - kennst du Google noch nicht? die Seite heißt https://www.google.de
Hilfts?
Ciao
Thorsten
Anzeige

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige