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

Forumthread: CSV Datei automatisiert bearbeiten ergänzen

CSV Datei automatisiert bearbeiten ergänzen
Mac
Hallo,
ich habe eine vielleicht simple aber für mich aktuell unlösbare Aufgabe:
1. Ich erhalte täglich eine kommagetrennte CSV Datei zum Import in eine separate Datenbank
2. Diese CSV Datei enthält 5 "Werte" pro Zeile (kommagetrennt) - Der erste Wert ist ein 15 stelliger numerischer Wert
3. Dieser Wert soll nach der Vorgabe - (vergleichbar mit =LINKS(A2;3)&RECHTS(A2;7) - verkürzt werden und anschließend jeweils als 6ter Wert pro Zeile wieder ergänzt werden
4.Ergebnis speichern (ruhig in dieselbe Datei aber unbedingt als CSV)
Ich denke das geht sicherlich mit VBA - von dem ich leider keine Ahnung habe.
Das ganze soll täglich automatisert per Script ablaufen...
Hat jemand eine Idee?
Gruß
Mac
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: CSV Datei automatisiert bearbeiten ergänzen
20.01.2011 13:03:51
Josef

Hallo Mac,
das geht z. B. so.

' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub editCSV()
  Dim strFile As String, strTmpFile As String
  Dim strOrg As String, vntTmp As Variant, strNew As String
  Dim ff1 As Integer, ff2 As Integer
  
  strFile = "E:\Forum\test.csv"
  
  
  If Dir(strFile, vbNormal) <> "" Then
    strTmpFile = Environ("TEMP") & "\tmp.csv"
    ff1 = FreeFile
    Open strFile For Input As ff1
    ff2 = FreeFile
    Open strTmpFile For Output As ff2
    Do While Not EOF(ff1)
      Input #ff1, strOrg
      vntTmp = Split(strOrg, ";")
      strNew = strOrg & ";" & Left(vntTmp(0), 3) & Right(vntTmp(0), 7)
      Print #ff2, strNew
      strNew = ""
    Loop
    Close ff2
    Close ff1
    Kill strFile
    Name strTmpFile As strFile
  Else
    MsgBox "Datei nicht gefunden!"
  End If
End Sub

Gruß Sepp

Anzeige
AW: CSV Datei automatisiert bearbeiten ergänzen
20.01.2011 14:59:18
Mac
Hallo Sepp,
super, vielen herzlichen Dank!!
Genau das habe ich gesucht.
Gruß
Mac

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

CSV-Datei automatisiert bearbeiten und speichern


Schritt-für-Schritt-Anleitung

Um eine CSV-Datei automatisiert zu bearbeiten und zu speichern, kannst Du ein VBA-Skript verwenden. Hier ist eine Anleitung, wie Du dies umsetzen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code ein:
Option Explicit

Sub editCSV()
    Dim strFile As String, strTmpFile As String
    Dim strOrg As String, vntTmp As Variant, strNew As String
    Dim ff1 As Integer, ff2 As Integer

    strFile = "E:\Forum\test.csv" ' Pfad zur CSV-Datei

    If Dir(strFile, vbNormal) <> "" Then
        strTmpFile = Environ("TEMP") & "\tmp.csv"
        ff1 = FreeFile
        Open strFile For Input As ff1
        ff2 = FreeFile
        Open strTmpFile For Output As ff2

        Do While Not EOF(ff1)
            Input #ff1, strOrg
            vntTmp = Split(strOrg, ";")
            strNew = strOrg & ";" & Left(vntTmp(0), 3) & Right(vntTmp(0), 7)
            Print #ff2, strNew
            strNew = ""
        Loop

        Close ff2
        Close ff1
        Kill strFile
        Name strTmpFile As strFile
    Else
        MsgBox "Datei nicht gefunden!"
    End If
End Sub
  1. Passe den Pfad in der Zeile strFile = "E:\Forum\test.csv" an, sodass er auf die CSV-Datei verweist, die Du bearbeiten möchtest.
  2. Schließe den VBA-Editor und führe das Skript aus, indem Du zurück zu Excel gehst und ALT + F8 drückst, um das Makro editCSV auszuwählen und zu starten.

Häufige Fehler und Lösungen

  • Datei nicht gefunden: Stelle sicher, dass der angegebene Pfad zur CSV-Datei korrekt ist und die Datei tatsächlich existiert.
  • Zugriffsprobleme: Überprüfe, ob Du die notwendigen Berechtigungen hast, um die Datei zu bearbeiten und zu speichern.
  • Formatierungsprobleme: Wenn die CSV-Datei nicht korrekt geöffnet wird, könnte es an falschen Trennzeichen liegen. Stelle sicher, dass das Trennzeichen im Code (z. B. ";") mit dem in der Datei übereinstimmt.

Alternative Methoden

Falls Du die CSV-Datei bearbeiten möchtest, ohne Excel zu verwenden, kannst Du auch Tools wie Notepad++, Python oder spezialisierte CSV-Editoren nutzen. Diese bieten oft umfangreiche Funktionen zur Bearbeitung und Speicherung von CSV-Dateien.

import pandas as pd

# CSV-Datei einlesen
df = pd.read_csv('test.csv', header=None)

# Bearbeitung: Erster Wert verkürzen und als neuen Wert hinzufügen
df[5] = df[0].str[:3] + df[0].str[-7:]

# Ergebnis speichern
df.to_csv('test.csv', header=False, index=False)

Praktische Beispiele

Hier ein Beispiel, wie die CSV-Datei nach der Bearbeitung aussehen könnte:

Ursprüngliche CSV-Datei:

123456789012345;Wert1;Wert2;Wert3;Wert4
234567890123456;WertA;WertB;WertC;WertD

Nach der Bearbeitung:

123456789012345;Wert1;Wert2;Wert3;Wert4;123456345
234567890123456;WertA;WertB;WertC;WertD;234567456

Du kannst sehen, dass der verkürzte Wert nun als 6ter Wert pro Zeile hinzugefügt wurde.


Tipps für Profis

  • Verwende die Funktion Application.OnTime, um das Makro zu einem bestimmten Zeitpunkt automatisch auszuführen, wenn Du die CSV-Datei regelmäßig bearbeiten möchtest.
  • Stelle sicher, dass Du immer eine Sicherungskopie Deiner CSV-Datei hast, bevor Du sie bearbeitest, um Datenverlust zu vermeiden.
  • Experimentiere mit verschiedenen Trennzeichen, um die CSV-Datei optimal zu bearbeiten und an Deine Bedürfnisse anzupassen.

FAQ: Häufige Fragen

1. Kann ich die CSV-Datei auch in Excel bearbeiten? Ja, Du kannst die CSV-Datei in Excel öffnen, aber achte darauf, dass Du sie nach der Bearbeitung wieder im CSV-Format speicherst.

2. Gibt es eine Möglichkeit, CSV-Dateien ohne VBA zu bearbeiten? Ja, Du kannst auch Python oder spezialisierte CSV-Editoren verwenden, um CSV-Dateien zu bearbeiten, ohne Excel zu nutzen.

3. Wie kann ich die CSV-Datei in ein Excel-Format umwandeln? Du kannst die CSV-Datei in Excel öffnen und dann Datei > Speichern unter wählen, um die Datei im Excel-Format (.xlsx) zu speichern.

4. Was mache ich, wenn ich keine VBA-Kenntnisse habe? Wenn Du keine VBA-Kenntnisse hast, kannst Du Alternativen wie Python oder CSV-Editoren verwenden, die eine benutzerfreundliche Oberfläche bieten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige