Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: batch: csv2xls

batch: csv2xls
11.09.2007 11:54:00
Julia
Nachdem ich gestern einen Beitrag geschrieben habe dass ich ein Prog suche welches mir mehrere csv files in xls umwandelt, muss ich heute nochmal einen Beitrag schreiben
Mein Vorgesetzter sucht kein Programm mit einer GUI wie von einem User hier im Forum empfohlen (Convert XLS, dennoch danke für den Tipp, hat super geklappt) sondern eine Batch-Datei die das erledigt.
Da ich keine Ahnung habe wo ich hier suchen muss oder wie man dies realisiert, frag ich ob von euch einer eine Idee zu meiner Problematik hat?
Gruß Julia

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: batch: csv2xls
11.09.2007 12:45:44
Oberschlumpf
Hallo?
Batch-Dateien führen Befehle automatisiert auf der DOS-Ebene aus. Damit kannst du in Excel nichts anfange - zumindest nicht bei dem, was dein Chef gern hätte.
Aber wie können alle "Neu-Leser" dir jetzt helfen?
Den von dir erwähnten Beitrag kenne ich nicht.
Derr Link wäre schön, oder, wenn noch nicht vorhanden, eine Bsp-Datei.
Ciao
Thorsten

Anzeige
AW: batch: csv2xls
11.09.2007 13:12:19
Julia
Ich bräuchte einfach ein Tool welches auf einen Klick mehrere csv Dateien (mit ; getrennt) in xls umwandelt...

AW: batch: csv2xls
11.09.2007 13:20:10
Rudi
Hallo,
das beste dafür ist EXCEL.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: batch: csv2xls
11.09.2007 13:25:00
Julia
wie meinst du das?

Anzeige
AW: batch: csv2xls
11.09.2007 13:30:00
Rudi
Hallo,
warum sollte man eine .csv nach Excel konvertieren, wenn Excel einwandfrei damit umgehen kann?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: batch: csv2xls
11.09.2007 13:48:10
Julia
es geht um statistische Auswertungen
Unser System liefer uns csv Dateien, dies möchten wir in xls umwandeln um dann Diagramme zu erstellen

Anzeige
AW: batch: csv2xls
11.09.2007 14:06:23
Rudi
Hallo,
ja und?
.csv öffnen, Diagramm erstellen und die Datei als .xls speichern.
Der Aufwand wird durch vorherige Konvertierung nicht geringer.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: batch: csv2xls
11.09.2007 14:09:00
Julia
Ich hab diese Vorgabe bekommen
In meinem Ordner sind jetzt 490 csv dateien, und es werden täglich mehr. Ist erst die Testphase
Und jede csv zu öffnen und dann als xls zu speichern wollen wir nicht
die xls sollen dann von der sachbearbeitung weiter verwertet werden

Anzeige
AW: batch: csv2xls
11.09.2007 14:48:05
zu
Hallo,
auch wenn ich das für überflüssig halte.
In ein Modul:

Option Explicit
Public intCalculation As Integer
Sub CSV2XLS()
Dim oFS As Object, oFolder As Object, oFile As Object
Dim strFolder As String
Dim strTxt As String, myArr, lngL As Long, WKS As Worksheet, iFREE As Integer
With Application.FileDialog(4)
.InitialFileName = "n:\"
.InitialView = 2
.Title = "Bitte einen Ordner wählen"
If .Show = -1 Then
strFolder = .SelectedItems(1)
Else
Exit Sub
End If
End With
On Error GoTo FEHLER
DoEvents
GetMoreSpeed
Set oFS = CreateObject("scripting.filesystemobject")
Set oFolder = oFS.getfolder(strFolder)
iFREE = FreeFile
For Each oFile In oFolder.Files
If oFile.Name Like "*.csv" Then
lngL = 1
Open oFile For Input As iFREE
Set WKS = Workbooks.Add(1).Sheets(1)
Do Until EOF(iFREE)
Line Input #iFREE, strTxt
myArr = Split(strTxt, ";")
With WKS
.Range(.Cells(lngL, 1), .Cells(lngL, UBound(myArr) + 1)) = myArr
End With
lngL = lngL + 1
Erase myArr
Loop
Close #iFREE
End If
With WKS.Parent
.SaveAs Replace(oFile, ".csv", ".xls"), xlWorkbookNormal
.Close False
End With
Set WKS = Nothing
Next oFile
AUFRAEUMEN:
Set oFile = Nothing
Set oFolder = Nothing
Set oFS = Nothing
GetMoreSpeed False
Exit Sub
FEHLER:
If Err.Number Then
MsgBox "Fehler!" & vbLf & Err.Description
Err.Clear
Resume AUFRAEUMEN
End If
End Sub
Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
If Modus = True Then intCalculation = Application.Calculation
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, 2, -4143)
End With
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: batch: csv2xls
11.09.2007 15:19:00
Julia
Vielen Dank erstmal für deine Mühe.
Mit einigen csv hat es geklappt mit einigen leider nicht
Vielleicht bin ich ja hier auch falsch, eigentlich suche ich ja ein Batchfile welches mir die csv in xls konventiert
Ich weiss du findest das sinnlos, aber Auftrag ist Auftrag ;)
Jetzt weiss ich nicht ob meine Vorstellung überhaupt so machbar ist, steh etwas auf dem Schlauch
Ich hab mir gedacht dass wenn ich ein Batchfile finde, alles über dieses File gesteuert wird.
z.B. meine bat Datei ist im ordner csv. Beim Ausführen dieser datei hätte ich gerne alle csv im order "export" als xls Datei.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Automatisches Konvertieren von CSV in Excel mit Batch-Dateien


Schritt-für-Schritt-Anleitung

Um mehrere CSV-Dateien in Excel-Dateien (XLS) umzuwandeln, kannst Du VBA (Visual Basic for Applications) in Excel nutzen. Hier ist eine einfache Anleitung:

  1. Excel öffnen: Starte Microsoft Excel und öffne ein neues leeres Dokument.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul erstellen: Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    Public intCalculation As Integer
    Sub CSV2XLS()
       Dim oFS As Object, oFolder As Object, oFile As Object
       Dim strFolder As String
       Dim strTxt As String, myArr, lngL As Long, WKS As Worksheet, iFREE As Integer
       With Application.FileDialog(4)
           .InitialFileName = "n:\"
           .InitialView = 2
           .Title = "Bitte einen Ordner wählen"
           If .Show = -1 Then
               strFolder = .SelectedItems(1)
           Else
               Exit Sub
           End If
       End With
       On Error GoTo FEHLER
       DoEvents
       GetMoreSpeed
       Set oFS = CreateObject("scripting.filesystemobject")
       Set oFolder = oFS.getfolder(strFolder)
       iFREE = FreeFile
       For Each oFile In oFolder.Files
           If oFile.Name Like "*.csv" Then
               lngL = 1
               Open oFile For Input As iFREE
               Set WKS = Workbooks.Add(1).Sheets(1)
               Do Until EOF(iFREE)
                   Line Input #iFREE, strTxt
                   myArr = Split(strTxt, ";")
                   With WKS
                       .Range(.Cells(lngL, 1), .Cells(lngL, UBound(myArr) + 1)) = myArr
                   End With
                   lngL = lngL + 1
                   Erase myArr
               Loop
               Close #iFREE
           End If
           With WKS.Parent
               .SaveAs Replace(oFile, ".csv", ".xls"), xlWorkbookNormal
               .Close False
           End With
           Set WKS = Nothing
       Next oFile
    AUFRAEUMEN:
       Set oFile = Nothing
       Set oFolder = Nothing
       Set oFS = Nothing
       GetMoreSpeed False
       Exit Sub
    FEHLER:
       If Err.Number Then
           MsgBox "Fehler!" & vbLf & Err.Description
           Err.Clear
           Resume AUFRAEUMEN
       End If
    End Sub
    Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
       If Modus = True Then intCalculation = Application.Calculation
       With Application
           .ScreenUpdating = Not Modus
           .EnableEvents = Not Modus
           .Calculation = IIf(Modus = True, xlManual, intCalculation)
           .Cursor = IIf(Modus = True, 2, -4143)
       End With
    End Sub
  5. Code ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Du kannst den Code durch Drücken von F5 im VBA-Editor ausführen oder eine Schaltfläche in Excel erstellen, um den Prozess zu starten.

  6. CSV-Dateien auswählen: Der Dialog öffnet sich, um den Ordner mit den CSV-Dateien auszuwählen. Der Code wandelt alle CSV-Dateien in diesem Ordner automatisch in XLS-Dateien um.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen von CSV-Dateien: Stelle sicher, dass die CSV-Dateien im richtigen Format vorliegen und die Trennzeichen korrekt sind (z.B. ;).
  • Speicherprobleme: Überprüfe, ob genügend Speicherplatz auf der Festplatte vorhanden ist.
  • VBA-Code funktioniert nicht: Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere die Makros.

Alternative Methoden

Falls Du keine VBA-Lösung verwenden möchtest, kannst Du auch externe Tools in Betracht ziehen. Einige kostenlose Tools ermöglichen es, CSV-Dateien in Excel-Dateien zu konvertieren, z.B.:

  • CSV to Excel Converter: Ein einfaches Tool, das CSV-Dateien in Excel umwandelt, ohne dass Programmierkenntnisse erforderlich sind.
  • Online-Dienste: Websites wie convertcsv.com bieten die Möglichkeit, CSV-Dateien hochzuladen und sie als XLS-Dateien herunterzuladen.

Praktische Beispiele

Ein Beispiel für die Verwendung des oben genannten Codes:

  1. CSV-Datei erstellen: Erstelle eine CSV-Datei mit dem Namen daten.csv im Format:

    Name;Alter;Stadt
    Max;30;Berlin
    Anna;25;Hamburg
  2. VBA-Code ausführen: Nachdem Du den VBA-Code ausgeführt hast, wird eine neue Excel-Datei mit dem Namen daten.xls erstellt, die die Daten enthält.


Tipps für Profis

  • Batch-Dateien verwenden: Du kannst auch Batch-Dateien (.bat) verwenden, um den Prozess der Umwandlung zu automatisieren, wenn Du regelmäßig CSV-Dateien konvertieren musst.
  • Excel Stapelverarbeitung: Nutze die Excel Stapelverarbeitung, um eine große Anzahl von Dateien effizient zu verarbeiten.
  • Rechtschreibprüfung: Achte darauf, dass Du die korrekten Dateiendungen verwendest (z.B. .csv, .xls).

FAQ: Häufige Fragen

1. Wie kann ich mehrere CSV-Dateien gleichzeitig in XLS-Dateien umwandeln?
Du kannst den oben beschriebenen VBA-Code verwenden, um alle CSV-Dateien in einem Ordner automatisch in XLS-Dateien umzuwandeln.

2. Kann ich auch TXT-Dateien in CSV umwandeln?
Ja, Du kannst eine TXT-Datei in eine CSV-Datei umwandeln, indem Du die Datei in Excel öffnest und beim Speichern die CSV-Option wählst.

3. Welche Excel-Version wird benötigt?
Der oben beschriebene VBA-Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und neuer) funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige