Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1544to1548
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

Excel Tabellenblatt - CSV-Export

Excel Tabellenblatt - CSV-Export
10.03.2017 09:04:47
Schmecks
Hallo Freunde,
ich habe mal wieder ein Problem bei dem ich nicht weiter komme.
Ich habe eine Tabelle, siehe Anhang und führe auf dem Tabellenblatt "Hilfe" Berechnungen und Auswertungen durch. Um diese nun in ein anderes Programm zu übertragen muss ich den Inhalt von Tabellenblatt "Tabelle1" in eine CSV-Datei exportieren und speichern. Des Weiteren soll die CSV-Tabelle im aktuellen Pfad abgelegt werden und ein Teil des Dateinamens soll sich aus dem aktuellen Datum und dem Inhalt der Zelle "G1" (immer gleiche Zelle, da dort Themen-DropDownListe) zusammen setzen. Wenn Ich die CSV-Tabelle erstelle muss natürlich das Tabellenblatt "Hilfe" gelöscht werden. Es müssen weiterhin die Spalten erhalten bleiben und die Trennung darf nicht durch irgendwelche Zeichen erfolgen. Die CSV sollte exakt so aussehen wie das Tabellenblatt "Tabelle1". Es gibt nur diese beiden Tabellenblätter in der Originaltabelle, bzw. ist immer das "Sheet1" oder "Tabelle1" in VBA das was in eine CSV-Datei gespeichert werden soll, alle anderen können gelöscht werden.
Ich hoffe Ihr könnt mir weiterhelfen
Option Explicit

Sub Tabellenblatt_2_CSV()
Dim Mappe As Workbook
Dim Tabelle As Worksheet
Dim DateiName As String
DateiPfad = ThisWorkbook.Path
DateiName = DateiPfad & "\" & Sheets("Hilfe").Range("G1").Value & Format(Now, "yyyymmdd") &  _
_
_
_
"." & ".csv"
Set Tabelle = ThisWorkbook.Sheets("Tabelle1")
Set Mappe = Workbooks.Add
Tabelle.Copy before:=Mappe.Worksheets(Worksheets.Count)
Application.DisplayAlerts = False
Sheets(2).Delete
Application.DisplayAlerts = True
Tabelle.SaveAs Filename:=DateiName, FileFormat:=xlCSV, CreateBackup:=True
End Sub

Beispieldatei: https://www.herber.de/bbs/user/112075.xlsm
Grüße Euer Schmecks

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Tabellenblatt - CSV-Export
10.03.2017 09:50:41
Herbert
Hallo,
mein Freund Alois Eckl ("Excel Inside Solutions") hat auf seiner HP ein Beispiel, wie man eine Unicode-csv-Datei erzeugen kann. Diese ist zwar immer noch nicht "TAB-getrennt", doch wenn Du diese csv-Datei anschließend über "Daten-Externe Daten abrufen-Aus Text" in Excel importierst, kannst Du das gewünschte Trennzeichen ("TAB") einstellen und Du hast das gewünschte Ergebnis. Probier's mal!
Hier der Link zur Seite:
http://www.excel-inside.de/vba-loesungen/text/858-csv-datei-mit-unicode-zeichen-erzeugen
Servus
Anzeige
AW: Excel Tabellenblatt - CSV-Export
10.03.2017 10:16:11
Schmecks
Hallo,
Danke für den Link, aber ich bin kein Excel-Profi. Ich hatte mich an folgendem Beispiel orienentiert:
Option Explicit
Sub TabelleInNeueArbeitsmappeKopieren()
Dim Mappe As Workbook
Dim tabelle As Worksheet
Set tabelle = ThisWorkbook.Sheets("Tabelle2")
Set Mappe = Workbooks.Add
tabelle.Copy before:=Mappe.Worksheets(Worksheets.Count)
Application.DisplayAlerts = False
Sheets(2).Delete
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs "C:\Temp\Textcsv", FileFormat:=xlCSV
End Sub
das funktioniert soweit, außer das die Tabellenblätter in der CSV nicht korrekt gelöscht werden.
Ich hatte nur versucht den Code für mich, unter den oben beschriebenen Bedingungen, anzupassen.
Ich wäre für Hinweise in meinem Code dankbar.
mfg
Anzeige
AW: Excel Tabellenblatt - CSV-Export
10.03.2017 10:44:28
Herbert
Dazu musst Du doch kein VBA-Profi sein, um einen Code in Deine Am zu kopieren, noch dazu habe ich es Dir genau beschrieben, wie Du es machen sollst. Also, hier noch einmal der Code und die Beschreibung:
" wenn Du diese csv-Datei anschließend über "Daten-Externe Daten abrufen-Aus Text" in Excel importierst, kannst Du das gewünschte Trennzeichen ("TAB") einstellen und Du hast das gewünschte Ergebnis."
Sub UniCode_CSV_erzeugen()
'** Dimensionierung der Variablen
Dim strFile As Variant
'** Dateiname + Pfad festlegen
'strFile = Application.GetSaveAsFilename("Unicode_CSV-Datei.csv", "CSV-Dateien,*.csv,Alle  _
Dateien,*.*")
strFile = ThisWorkbook.Path & "\Unicode-CSV-Datei.csv"
'** Beenden, wenn kein Dateiname vorhanden ist
If strFile = False Then Exit Sub
'** Speicher-Prozedur aufrufen
Code_CSV_speichern (strFile)
End Sub
Sub Code_CSV_speichern(strFile As String)
'** Dimensionierung der Variablen
Dim filenr, a, b, lngAnzSp As Integer
Dim strData As String '** CSV-Datenzeile
'** Vorgaben definieren
filenr = FreeFile
lngAnzSp = ThisWorkbook.Sheets("Tabelle1").Cells.SpecialCells(xlCellTypeLastCell).Column
'** Datei öffnen
Open strFile For Output As #filenr
'** Daten in CSV-Datei schreiben
Print #filenr, Chr(255); Chr(254);
For a = 1 To ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
strData = ""
For b = 1 To lngAnzSp - 1
strData = strData & Cells(a, b).Text & ","
Next b
strData = strData & Cells(a, b).Text & vbCrLf
Print #filenr, GetUniCodeString(strData);
Next a
'** Datei schließen
Close #filenr
End Sub
Private Function GetUniCodeString(s As String) As String
'** Dimensionierung der Variablen
Dim a As Integer  ' Zähler über die einzelnen Bytes des Unicode-Strings
'** Umwanden in Unicode-Zeichen
GetUniCodeString = ""
For a = 1 To LenB(s)
GetUniCodeString = GetUniCodeString & Chr(AscB(MidB(s, a, 1)))
Next
End Function
Servus
Anzeige
AW: Excel Tabellenblatt - CSV-Export
10.03.2017 12:38:05
Schmecks
Hallo,
ich glaube wir reden aneinander vorbei.
Ich habe bereits erwähnt, das ich genau diese Form der CSV brauche, denn (siehe Beispiel) ein drittes Programm kommt nur mit dieser Art der CSV und den darin enthaltenen 4-5 Informationen in den 4-5 Spalten klar. Die Trennung spaltenweise soll bestehen bleiben. Ich möchte mir bestimmte Daten aus einer Datenbank generieren, siehe Tabellenblatt "Hilfe" und diese Liste in das Tabellenblatt "Tabelle1" übernehmen und dann genau das und nur das in eine CSV umwandeln und ablegen an einem Speicherort X mit dem Dateinamen aus dem gewählten DropDown "G1".
Da es sich hier um viele Varianten handelt die ich rhytmusmäßig erzeugen muss, sollte immer aus dem Tabellenblatt "Tabelle1" eine CSV erzeugt und abgelegt werden.
ich hoffe ich konnte den Sachverhalt rüberbringen.
mfg der Schmecks
Anzeige
AW: Excel Tabellenblatt - CSV-Export
10.03.2017 13:14:23
Herbert
Hallo,
probiers noch mal damit:
Sub Makro6()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs fileName:="E:\xxx\csvDatei.csv"
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Damit speichert er die Datei wie gewünscht, bringt aber beim öffnen komischerweise eine Fehlermeldung. Wenn Du die ignorierst und auf JA klickst, hast Du sie wie gewünscht.
Servus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige