Thema Datum  Von Nutzer Rating
Antwort
22.03.2018 10:08:15 fesch
Solved
22.03.2018 20:03:03 Gast86261
Solved
23.03.2018 08:43:42 fesch
Solved
Blau VBA - Automatisches Abspeichern
23.03.2018 14:47:53 fesch
Solved

Ansicht des Beitrags:
Von:
fesch
Datum:
23.03.2018 14:47:53
Views:
531
Rating: Antwort:
 Nein
Thema:
VBA - Automatisches Abspeichern

Hallo,

vielleicht noch kurz zur Ergänzung, was ich mit dem Code erreichen möchte:

Es soll aus einer vorhandenen Excel Datei eine csv Datei exportiert werden. Dabei müssen die Daten aus der Excel Tabelle durch ";" und "" getrennt werden, damit ich sie für einen weiteren Import verwenden kann. Trennung durch "," wäre unbrauchbar.

Die csv Datei soll automatisch mit dem Namen "import_" + aktuelles Datum und aktuelle Uhrzeit in einen vordefinierten Ordner abgespeichert werden.

Mit dem folgenden Code erreiche ich zwar eine automatische Abspeicherung unter dem passenden Namen am passenden Ort, jedoch erfolgt die Trennung durch "," und nicht durch ";" und "".

Wenn ich den Code, der für die Trennung verantwortlich ist, ohne automatisches Abspeichern durchlaufen lasse, funktioniert es einwandfrei. Es muss sich also irgendwo beim Zusammensetzen ein Fehler eingeschlichen haben, den ich bisher leider nicht gefunden habe oder es muss vielleicht etwas geändert oder ergänzt werden...

Für weitere Hilfe wäre ich sehr dankbar. Vielen Dank dafür im Voraus.

Sub CSVFile()
Dim CurrCell As Range
Dim CurrTextStr As String
Dim ListSep As String
Dim FeldSep As String
Dim str As String
Const LW = "c:\"
Const Pfad = "c:\X\Y\Desktop\"
 
Dim FName As Variant
Dim Datumzeitstempel As String
Dim Jetzt As Date
Jetzt = Now()
Datumzeitstempel = Year(Date) & Format(Month(Date), "00") & Format(Day(Date), "00")
Datumzeitstempel = Datumzeitstempel & "" & Format(Hour(Jetzt), "00") & Format(Minute(Jetzt), "00") & Format(Second(Jetzt), "00")
ChDrive LW
ChDir Pfad
FName = Application.GetSaveAsFilename("date_" & Datumzeitstempel & ".csv")
 
ListSep = ","
If Selection.Cells.Count > 1 Then
Set SrcRg = Selection
Else
Set SrcRg = ActiveSheet.UsedRange
End If
Open FName For Output As #1
For Each CurrRow In SrcRg.Rows
CurrTextStr = ""
      FeldSep = IIf(CurrRow.Row < 2, "", """")
      For Each CurrCell In CurrRow.Cells
         CurrTextStr = CurrTextStr & FeldSep & CurrCell.Value & FeldSep & ListSep
Next
While Right(CurrTextStr, 1) = ListSep
CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
Wend
Print #1, CurrTextStr
Next
Close #1
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
22.03.2018 10:08:15 fesch
Solved
22.03.2018 20:03:03 Gast86261
Solved
23.03.2018 08:43:42 fesch
Solved
Blau VBA - Automatisches Abspeichern
23.03.2018 14:47:53 fesch
Solved