Ich muss mehrere Aufgabenlisten in einer Gesamtübersicht zusammenführen. Die Listen sind gleich aufgebaut. Nun habe ich ein Makro gefunde, welches auch eigentlich gut funktioniert.
Das Problem ist nur, dass das Makro die Formatierung der Datenquellen übernimmt und ich diese Gesamtübersich gerne selbst formatieren würde. Sodass sich nur die Daten aktualisieren aber das Aussehen immer gleich bleibt.
Der Code ist folgender:
Option Explicit
Const HomeDatei = "LeereArbeitsmappe.xls" 'Name Arbeitsmappe Makro-Excel-Datei
Const HomeDaten = "Import-Daten" 'Name Tabellenblatt Daten-Import
Const HomeListe = "Datei-Liste" 'Name Tabellenblatt Datei-Liste
Const HomeZeile = 3 'Erste Zeile Einfügen
Const CopyZeile = 3 'Erste Zeile Kopieren
Const ListDatei = "A1" 'Zelle erster Dateiname
Const ErrMsg = "Abbruch! Datei existiert nicht: "
Sub SheetsImport()
Dim WksHome As Worksheet, WksList As Worksheet, EndLine As Integer, NextLine As Integer
Dim WkbCopy As Workbook, WksCopy As Worksheet, Fso As Object, File As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
Set WksHome = Workbooks(HomeDatei).Sheets(HomeDaten)
Set WksList = Workbooks(HomeDatei).Sheets(HomeListe)
EndLine = GetEndLine(WksHome): NextLine = HomeZeile
If EndLine >= HomeZeile Then WksHome.Rows("3:" & EndLine).Cells.Clear
Application.ScreenUpdating = False
For Each File In WksList.Range(ListDatei).CurrentRegion
If Fso.FileExists(File) = False Then
Application.ScreenUpdating = True
MsgBox ErrMsg & File, vbExclamation, "Fehler": Exit Sub
End If
Set WkbCopy = Workbooks.Open(File): Set WksCopy = WkbCopy.Sheets(1)
EndLine = GetEndLine(WksCopy)
If EndLine >= CopyZeile Then
WksCopy.Rows("3:" & EndLine).Copy
WksHome.Rows(NextLine).Insert Shift:=xlDown
Application.CutCopyMode = False
WkbCopy.Saved = True: WkbCopy.Close
NextLine = GetEndLine(WksHome) + 1
End If
Next
Application.ScreenUpdating = True
Cells.Clearformats
End Sub
Private Function GetEndLine(ByRef Wks) As Integer
GetEndLine = Wks.Cells(Wks.Rows.Count, "A").End(xlUp).Row
End Function
Wie man sehen kann, habe ich die Zeile Cells.Clearformats selbst hinzugefügt. Sie bewirkt aber, dass das Format meiner Gesamtübersicht jedes mal komplett gelöscht wird. Also perfekt wäre es, wenn er wirklich nur die Werte kopieren würde und ich in meiner Gesamtübersicht die Zahlenformate und Farben in einer Spalte vor formatieren könnte.Hoffe ist einigermassen verständlich. Danke schonmal.