Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Dateien öffnen, editieren, speichern

Betrifft: VBA Dateien öffnen, editieren, speichern von: Tim
Geschrieben am: 25.08.2014 18:10:20

Hallo zusammen,

ich hoffe ihr könnt mir weiterhelfen.

Ich habe folgende Aufgabe:

- Ordner mit monatlich wechselnder Anzahl von CSVs
- Diese müssen geöffnet, formatiert u. als xls mit dem Namen aus Zelle "B5" abgespeichert werden

Mein Ziel ist es diesen Prozess zu automatisieren.

Für das Formatieren habe ein bereits ein Makro.

Ich hoffe Ihr könnt mir weiterhelfen.

Herzlichen Dank

  

Betrifft: AW: VBA Dateien öffnen, editieren, speichern von: fcs
Geschrieben am: 26.08.2014 14:44:12

Hallo Tim,

hier ein entsprechendes Makro mit Dialog zur Auswahl des Ordners/Verzeichnisses.

Gruß
Franz

Sub CSV_laden_formatieren_speichern()
  Dim wkb As Workbook
  Dim varName As String, intC As Integer
  Dim varVerzeichnis, strDatei As String
  
  With Application.FileDialog(msoFileDialogFolderPicker)
      .Title = "Bitte Verzeichnis mit den CSV-Dateien auswählen"
      If .Show = -1 Then
        varVerzeichnis = .SelectedItems(1)
      Else
        GoTo Beenden
      End If
  End With
  varName = Dir(varVerzeichnis & "\*.csv")
  With Application
    .ScreenUpdating = False
  End With
  Do Until varName = ""
      intC = intC + 1
      Application.StatusBar = "Datei Nr. " & intC & " (" & varName & ") wird bearbeitet"
      varName = varVerzeichnis & "\" & varName
      Set wkb = Application.Workbooks.Open(Filename:=varName, ReadOnly:=True, Local:=True) _
        'Local:=True wenn Trennzeichen = ";" und Dezimal-, 1000er-Zeichen wie Systemeinstellung
        'Local:=False wenn Trennzeichen = ",", Deziamlzeichen und 1000er wie USA
      Call prcFormatieren
      Application.DisplayAlerts = False
      wkb.SaveAs Filename:=varVerzeichnis & "\" & ActiveSheet.Range("B5").Text, _
            FileFormat:=-4143 '-4143 = xlWorkbookNormal (xls), 51 = xlOpenXMLWorkbook (xlsx)
      wkb.Close savechanges:=False
      Application.DisplayAlerts = True
      varName = Dir
  Loop
Beenden:
  With Application
    .ScreenUpdating = True
    .StatusBar = False
  End With
End Sub



  

Betrifft: AW: VBA Dateien öffnen, editieren, speichern von: Tim
Geschrieben am: 26.08.2014 15:19:29

Danke Franz für die Rückmeldung.

Bei "Call prcFormatieren" bekomme ich über den debugger compile error: sub or function not defined.

Noch eine andere Frage: Wo baue ich die Formatierung ein (ich lösche ein paar Zeilen, Schriftgröße etc..).

Danke
Tim


  

Betrifft: AW: VBA Dateien öffnen, editieren, speichern von: fcs
Geschrieben am: 26.08.2014 16:45:54

Hallo Tim,

da hatt ich vergessen, das Makro zum Formatieren mit zu Kopieren.

Sub prcFormatieren()
  'aktives Blatt formatieren
End Sub

Änderere den Namen deines Formatiermakros in prcFormatieren dann sollte es funktionieren.

oder

Ersetze die Zeile
Call prcFormatieren
durch deinen Formatiercode.

Gruß
Franz


  

Betrifft: AW: VBA Dateien öffnen, editieren, speichern von: Tim
Geschrieben am: 26.08.2014 16:58:56

Danke - ich probiere es gleich mal aus.

Kannst du mir bitte noch weiterhelfen: wo baue ich meinen Code zum Formatieren des Files ein?


  

Betrifft: AW: VBA Dateien öffnen, editieren, speichern von: fcs
Geschrieben am: 27.08.2014 10:56:05

Hallo Tim,

hab ich dir doch eigentlich alles geschrieben.
Dein schon vorhandenes Makro packst du am besten in das gleiche Modul wie mein Makro.

Gruß
Franz


  

Betrifft: AW: VBA Dateien öffnen, editieren, speichern von: Tim
Geschrieben am: 28.08.2014 18:31:04

ok super. Funktioniert. Einziges Problem: nach ca. 400 Dateien gibt Excel auf u. sagt es sind zuviele Daten und macht nicht mehr weiter. Was kann ich noch tun?


  

Betrifft: AW: VBA Dateien öffnen, editieren, speichern von: fcs
Geschrieben am: 29.08.2014 11:44:53

Hallo Tim,

ich hab es jetzt mit 500 CSV-Dateien getestet und es dauert ein wenig bis das Makro fertig ist, aber es funktioniert.

Deshalb kann ich da nicht wirklich weiterhelfen,da ich nicht weiss ob der Dir-Befehl das Problem ist oder irgendeine anderere Grenze überschritten wird.

Wie viele CSV-Dateien sind es denn?
ggf. die Dateien auf mehrere Verzeichnissse verteilen und das Makro mehrfach starten.

Gruß
Franz


  

Betrifft: AW: VBA Dateien öffnen, editieren, speichern von: Tim
Geschrieben am: 02.09.2014 13:15:40

Ich habe das Problem mitlerweile behoben - danke. Allerdings hat sich ein weiterer Fehler gezeigt. Ich formatiere die Zellen:

Range("F9:J9").Select
Range(Selection, Cells(Rows.Count, Selection.Column).End(xlUp)).Select
Selection.NumberFormat = _
"_ [$€-413] * #,##0.00_ ;_ [$€-413] * -#,##0.00_ ;_ [$€-413] * ""-""??_ ;_ @_ "
Dim NextRow As Long
NextRow = Range("E" & Rows.Count).End(xlUp).Row + 1
Range("F" & NextRow & ":J" & NextRow).Formula = "=SUM(F9:F" & NextRow - 1 & ")"
Range(Selection, Cells(Rows.Count, Selection.Column).End(xlUp)).Select

Das Accounting Format wird auch hinterlegt, allerdings finde ich in jeder dieser Zellen das Problem, dass die Zahlen nicht so dargestellt werden wie gewünscht (siehe Anlage
). Klicke ich in die Zelle und dann ENTER, springt Excel automatisch zum richtigen Format: € XX,XX
Wie kann ich das automatisieren?

Vielen Dank


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Dateien öffnen, editieren, speichern"