![]() |
Betrifft: VBA Excel Dateien umwandeln, anpassen, speichern
von: Danny
Geschrieben am: 03.09.2014 16:56:12
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
![]() ![]() |
Betrifft: AW: VBA Excel Dateien umwandeln, anpassen, speichern
von: Rudi Maintaire
Geschrieben am: 03.09.2014 17:10:30
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
![]() ![]() |
Betrifft: AW: VBA Excel Dateien umwandeln, anpassen, speichern
von: Danny
Geschrieben am: 03.09.2014 19:24:00
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
![]() |