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

Forumthread: VBA Excel Dateien umwandeln, anpassen, speichern

VBA Excel Dateien umwandeln, anpassen, speichern
03.09.2014 16:56:12
Danny
Hallo,
ich bin VBA Neuling und brauche ein paar Tipps zur Lösung eines Problems.
Ich habe ziemlich viele Dateien die ich umwandeln und anpassen möchte.
Die Dateiennamen setzten sich aus einem ISO-Code (der sich immer unterscheidet) und einem gleichem Namen zusammen und liegen alle in einem Ordner.
Ich möchte mit den Dateien folgendes machen:
1. in jeder Datei soll zunächst die erste Zeile gelöscht werden
2. dann soll die Datei als .csv (Trennzeichen getrennt gespeichert werden).
3. anschließend soll die Datei in Word geöffnet werden
4. dann sollen in der Word datei alle ; durch ein , ersetzt werden
5. alle Dateien sollen wieder als .csv (Trennzeichen getrennt) in einem andern Ordner gepeichert werden
Hat jemand ein paar Lösungsansätze mittels VBA oder Makro für mich?
Viele Grüße
Danny

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Excel Dateien umwandeln, anpassen, speichern
03.09.2014 17:10:30
Rudi
Hallo,
wozu 3 und 4? Das kann man doch direkt erledigen.
Als Ansatz:
Sub Dateien()
Dim sFile As String, wkb As Workbook, wks As Worksheet
Const sPfad As String = "c:\test\"
sFile = Dir(sPfad & "*.xlsx")
Do While sFile  ""
Set wkb = Workbooks.Open(sPfad & sFile)
Set wks = wkb.Sheets(1)
wks.Rows(1).Delete
prcCreateCSV
wkb.Close False
sFile = Dir
Loop
End Sub
Public Sub prcCreateCSV(wks)
Dim intFileNumber As Integer
Dim lngRow As Long
Dim vntArray As Variant
Dim intItem As Integer
Dim strText As String
Dim i As Integer
Const strSep As String = ","
With wks.UsedRange
For lngRow = 1 To .Rows.Count
vntArray = .Cells(lngRow, 1).Resize(, .Columns.Count)
vntArray = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntArray))
If strText = "" Then
strText = Join(vntArray, strSep)
Else
strText = strText _
& vbCrLf _
& Join(vntArray, strSep)
End If
Next
End With
intFileNumber = FreeFile
With wks.Parent
Open _
.Path & "\" _
& Left$(.Name, InStrRev(.Name, ".") - 1) _
& "_" & ActiveSheet.Name _
& ".csv" _
For Output As #intFileNumber
End With
Print #intFileNumber, strText
Close #intFileNumber
End Sub

Gruß
Rudi

Anzeige
AW: VBA Excel Dateien umwandeln, anpassen, speichern
03.09.2014 19:24:00
Danny
Hi Rudi,
Danke für deine Antwort. Das erleichtert mir sicher schonmal einiges.
Ich verstehe leider nicht genau was du mit direkt erledigen meinst. Also alles manuell ändern?
Die Reihenfolge hatte ich deshalb gewählt:
3. Vorher konnte ich die Datei nicht in Word öffnen um:
4. Über die suchen und ersetzen Funktion die Semikolons gegen Kommata auszutauschen.
Nur scheint mir das für die Vielzahl der Dateien etwas zu mühselig.
Aber schonmal vielen Dank ich komme leider erst morgen dazu es ausgiebig zu testen.
Gruß
Danny
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA zum Umwandeln und Anpassen von Excel-Dateien


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei umzuwandeln und anzupassen, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung basierend auf dem Forumthread:

  1. Öffne den VBA-Editor: Drücke Alt + F11 in Excel.

  2. Füge ein neues Modul hinzu: Rechtsklicke auf "VBAProject (dein_dateiname.xlsx)" und wähle "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Sub Dateien()
       Dim sFile As String, wkb As Workbook, wks As Worksheet
       Const sPfad As String = "c:\test\"
       sFile = Dir(sPfad & "*.xlsx")
       Do While sFile <> ""
           Set wkb = Workbooks.Open(sPfad & sFile)
           Set wks = wkb.Sheets(1)
           wks.Rows(1).Delete
           prcCreateCSV wks
           wkb.Close False
           sFile = Dir
       Loop
    End Sub
    
    Public Sub prcCreateCSV(wks As Worksheet)
       Dim intFileNumber As Integer
       Dim lngRow As Long
       Dim vntArray As Variant
       Dim strText As String
       Const strSep As String = ","
       With wks.UsedRange
           For lngRow = 1 To .Rows.Count
               vntArray = .Cells(lngRow, 1).Resize(, .Columns.Count)
               If strText = "" Then
                   strText = Join(vntArray, strSep)
               Else
                   strText = strText & vbCrLf & Join(vntArray, strSep)
               End If
           Next
       End With
       intFileNumber = FreeFile
       Open "c:\test\output\" & Left$(wks.Parent.Name, InStrRev(wks.Parent.Name, ".") - 1) & ".csv" For Output As #intFileNumber
       Print #intFileNumber, strText
       Close #intFileNumber
    End Sub
  4. Anpassen des Pfades: Ändere den sPfad-Wert auf den Ordner, der deine Excel-Dateien enthält.

  5. Führe das Makro aus: Schließe den VBA-Editor und drücke F5, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro kann die Datei nicht finden.

    • Lösung: Überprüfe den Pfad zu den Excel-Dateien und stelle sicher, dass die Dateiendung korrekt ist.
  • Fehler: Excel stürzt ab oder reagiert nicht.

    • Lösung: Achte darauf, dass keine anderen Excel-Dateien im Hintergrund geöffnet sind und dass genügend Arbeitsspeicher verfügbar ist.

Alternative Methoden

Falls du keine VBA-Programmierung nutzen möchtest, kannst du auch folgende Methoden in Betracht ziehen:

  • Excel-Exportfunktionen: Nutze die "Speichern unter"-Funktion, um die Excel-Datei in verschiedene Formate zu konvertieren, wie CSV oder XLSX.
  • Online-Datei-Konverter: Es gibt viele Online-Tools, die es dir ermöglichen, Excel-Dateien in verschiedene Formate, wie JPG oder Word, umzuwandeln.

Praktische Beispiele

Ein praktisches Beispiel für die Umwandlung einer Excel-Datei in eine CSV-Datei:

  1. Datei in Excel umwandeln: Öffne die Excel-Datei.
  2. Speichern unter: Wähle "Datei" > "Speichern unter" und wähle das CSV-Format aus.
  3. Bestätigen: Klicke auf "Speichern", um die Umwandlung abzuschließen.

Tipps für Profis

  • Dateityp ändern ohne die Datei zu öffnen: Du kannst den Dateityp in Windows Explorer ändern, indem du die Dateiendung manuell anpasst.
  • Automatisierung: Erstelle eine Batch-Datei, um mehrere Excel-Dateien gleichzeitig zu konvertieren und anzupassen.

FAQ: Häufige Fragen

1. Wie kann ich eine Excel-Datei in ein JPG-Bild umwandeln?
Du kannst dies nicht direkt in Excel tun, sondern musst die Datei zuerst als PDF speichern und dann mit einem Screenshot-Tool oder einem PDF-Konverter in JPG umwandeln.

2. Kann ich eine Word-Datei in Excel umwandeln?
Ja, du kannst den Inhalt der Word-Datei kopieren und in eine Excel-Tabelle einfügen. Alternativ kannst du ein VBA-Skript verwenden, um den Prozess zu automatisieren.

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