Excel Datei als csv speichern einfache Programmierung?

Dieses Thema Excel Datei als csv speichern einfache Programmierung? im Forum "Microsoft Office Suite" wurde erstellt von ppdavinci, 29. Juni 2007.

Thema: Excel Datei als csv speichern einfache Programmierung? Hallo, Ich möchte excel Dateien zweimal als .csv abspeichern. Einmal als Dateiname.csv und einmal als in.csv. (zum...

  1. Hallo,

    Ich möchte excel Dateien zweimal als .csv abspeichern. Einmal als Dateiname.csv und einmal als in.csv. (zum Export in andere Software). Hat jemand eine Idee, wie man das automatisieren könnte, so dass ich nicht jede Datei öffnen und zweimal speichern unter muss?
     
  2. Hallo ppdavinci,

    liegen die Dateien denn alle in einem eigenen Verzeichnis ?

    Wenn nein, würde die jeweilige Kopie in.csv die vorhergehende überschreiben.

    Weitere Fragen:
    Aus was für einer Ursprungsdatei heraus willst du die csv-Datei speichern ? *.xls ?
    Wird der Name der Datei beiebehalten und ändert sich nur die Endung ?
    Liegt die Ursprungsdatei und die csv-Datei in einem Verzeichnis ?

    Gruß Matjes :)
     
  3. Hallo,

    Ja, es handelt sich um .xls-Dateien, die in einem Verzeichnis mit der in.csv-Datei liegen. Diese in.csv-Datei wird dann mit einem geschriebenen Programm in eine andere Software übertragen (hotpotatoes, Software zum Erstellen von Multiple-choice-Klausuren u.ä., generiert htm-codes). Nachdem eine Datei übertragen wurde, wird die in-csv-Datei jedesmal überschrieben. (Die bisher bearbeiteten habe ich dann aber auch unter Dateinamen.csv gespeichert für spätere Zwecke).

    Gruß,

    ppdavinci
     
  4. Hallo ppdavinci,

    hier ist zunächst ein Makro der eine aktive Mappe als Dateiname.csv und in.csv speichert.
    Probier mal aus, ob das deinen Wünschen nahekommt. Das Makro muß in einer Excel-Datei liegen, die nicht kopiert wird.

    Soll das Öffnen der Dateien auch noch automatisch erfolgen, z.B. alle *.xls-Dateien im Verzeichnis und ggf. auch in den Unterverzeichnissen.

    Gruß Matjes :)

    Code:
    Option Explicit
    
    Sub AktuelleDateiAlsCSVSpeichern()
    
     Dim wb As Workbook, ws As Worksheet
     Dim sPfad As String
     Dim sDateiname As String, sDateinameOhneEndung As String, sEndung As String
     Dim pos As Long, poslast As Long
     
     Set wb = ActiveWorkbook
     
    ->ist mehr als ein Blatt in der Mappe enthalten
     If wb.Sheets.Count > 1 Then
      MsgBox _
       Datei kann nicht als csv-Datei gespeichert werden, & vbLf & _
       da mehr als ein Blatt enthalten ist.
      GoTo AUFRAEUMEN
     End If
     
    ->ist das Blatt ein Arbeitsblatt ?
     If wb.Worksheets.Count <> 1 Then
      MsgBox Blatt ist kein Arbeitsblatt.
      GoTo AUFRAEUMEN
     End If
     
    ->Makro-Datei ist nicht Datei ?
     If wb.Name = ThisWorkbook.Name Then
      MsgBox Makro-Datei kann Makro nicht auf sich selbst ausführen.
      GoTo AUFRAEUMEN
     End If
     
    ->Dateiinhalt ist gespeichert
     If Not wb.Saved Then
     
     sPfad = wb.Path
     sDateiname = wb.Name
     poslast = 0
     pos = InStr(1, sDateiname, .)
     Do
      If pos = 0 Then Exit Do
      poslast = pos
      pos = InStr(pos + 1, sDateiname, .)
     Loop
     If poslast = 0 Then
      sEndung = 
      sDateinameOhneEndung = sDateiname
     Else
      sEndung = Right(sDateiname, Len(sDateiname) - poslast)
      sDateinameOhneEndung = Left(sDateiname, poslast - 1)
     End If
     
    ->Datei ist nicht schon csv-Datei ?
     If LCase(sEndung) = csv Then
      MsgBox Datei ist bereits csv-Datei
      GoTo AUFRAEUMEN
     End If
     
    ->Dateiinhalt nicht gespeichert ?
     If Not wb.Saved Then
      MsgBox _
       Die Datei enthält Änderungen, die noch nicht gespeichert sind. & vbLf & _
       Bitte vorher speichern.
      GoTo AUFRAEUMEN
     End If
     
    ->Datei als Csv-Datei mit gleichem Namen und als in.csv speichern
     Application.DisplayAlerts = False
     wb.SaveAs _
      Filename:=sPfad & Application.PathSeparator & sDateinameOhneEndung & 1 & .csv, _
      FileFormat:=xlCSVWindows->xlCSVMSDOS, xlCSV
     wb.SaveAs _
      Filename:=sPfad & Application.PathSeparator & in & 2 & .csv, _
      FileFormat:=xlCSVMSDOS
     Application.DisplayAlerts = True
     
     wb.Close Savechanges:=False
    ->ursprüngliche Datei öffnen
     Set wb = Workbooks.Open(Filename:=sPfad & Application.PathSeparator & sDateiname)
      
    AUFRAEUMEN:
     Set wb = Nothing: Set ws = Nothing
    
    End Sub
     
  5. Hallo,

    Ich hatte vor ein paar Monaten einmal nach einer Automatisierung gefragt, um .xls-Dateien in .csv-Dateien umzuwandeln. Da habe ich auch ein Makro bekommen, vielen Dank dafür.
    Diese sollten für ein geschriebenes Java-Script-Programm dienen, welches die Inhalte der .csv-Dateien in Hotpotatoes-Software überträgt (.jqz-Dateien). Diese generieren mit den gegebenen Fragen und Antworten Oberflächen für multiple-choice-Klausuren.

    Nun habe ich ein sehr großes Problem: Das gleiche soll mit Dateien in tschechischer, slovenischer und polnischer Sprache passieren. Bei der Umwandlung in .csv gehen aber alle Sonderzeichen verloren/werden nicht mehr richtig abgebildet. Ich bräuchte also etwas, mit dem ich von .xls diekt in .jqz und dann in .htm umwandeln kann ...
     
  6. Hallo ppdavinci,

    kannst Du mir eine kleine xls.Beispiel-Datei schicken und das gewünschte Ergebnis als html-Datei. Dann schau ich mal, wie man das am Besten erzeugen kann.

    Gruß Matjes :)
     
Die Seite wird geladen...

Excel Datei als csv speichern einfache Programmierung? - Ähnliche Themen

Forum Datum
Bestimmter User kann seine Excel Dateien nicht mehr direkt öffnen Software: Empfehlungen, Gesuche & Problemlösungen 16. Apr. 2016
Öffnen mit Doppelklick funktioniert bei Word u. Excel Dateien nichtmehr Microsoft Office Suite 10. Feb. 2015
Excel-Dateien bearbeiten auf iPhone Windows XP Forum 10. Sep. 2013
Excel Dateien im Internet Explorer öffnen funktioniert nicht, trotz Registry-Eintrag Microsoft Office Suite 22. Juli 2013
AxCrypt verschlüssete Excel2010 Datei nicht mehr zu öffnen Windows XP Forum 18. Feb. 2013