Hallo Community,
leider kämpfe ich seit Tagen mit einem Problem in meinem Code. Dort werden Excel Dateien aus einem Verzeichnis geöffnet, Teile des Inhalts in die Excel mit dem Makro kopiert und dann wieder geschlossen.
Ich habe nun das Problem, dass Excel teilweise wahllos die eingelesenen Dateien unter dem Standardverzeichnis abspeichert. Die Anzahl variiert und an meinem Pc tritt es z.B. gar nicht auf , aber an PCs von Kollegen tritt es auf; aber auch ziemlich wahllos (auch hier gibt es Kollegen bei denen es nicht auftritt).
Ich bin so langsam echt ratlos (ich bin kein völliger Anfänger) , bitte daher um Eure Hilfe.
Hier der Teil des Codes, der relevant ist:
(Beispieldateien darf ich leider nicht bereitstellen, aber es wird auch nur ein Bereich aus den eingelesenen Dateien kopiert (keine speziellen Inhalte))
Sub Load_Data(Filepath As String); sortedfiles ist eine Funktion, die die Excel-Dateien nach Name sortiert.
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
'declaration
Dim Myfile As String
Dim erow As Long
Dim LastRow As Long
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim test() As String
Dim total As Long
On Error GoTo ERRORHANDLER
'properties
Sheets("Menu").Activate
Myfile = Dir(Filepath & "\*.xlsx", vbArchive)
Set wb1 = ActiveWorkbook
test = sortedfiles(Filepath & "\*.xlsx")
'loop: open,copy,save,close,paste
For ii = 1 To UBound(test)
'open wb2, select and copy data
If test(ii) <> ThisWorkbook.Name Then
Workbooks.Open (Filepath & "\" & test(ii))
End If
Set wb2 = ActiveWorkbook
wb2.Save
LastRow = ActiveWorkbook.ActiveSheet.Cells(Rows.count, "A").End(xlUp).Row - 1
ActiveSheet.Range("A3:H" & LastRow).Copy
'back to wb1, select and paste data
wb1.Activate
Sheets("Master Summary Table").Activate
erow = ActiveWorkbook.ActiveSheet.Cells(Rows.count, "A").End(xlUp).Row + 1
ActiveSheet.Range("A" & erow).Select
If erow <> 3 And ActiveCell.Interior.Color = vbWhite Then
Range("A" & erow, "H" & erow).Interior.Color = vbBlack
ActiveCell.Offset(1, 0).Select
End If
Selection.PasteSpecial xlPasteValues
'save and close wb2
Application.CutCopyMode = False
wb2.Close savechanges:=False
Next ii
.....
Die Zeile wb2.Save ist hier wahrscheinlich der Übeltäter, jedoch ist diese Zeile wichtig, das sie sicherstellt, dass eventuelle Änderungen am Namen der Excel, die im Explorer und nicht in Excel selbst gemacht wurden übernommen werden. Oder kennt jemand eine Alternative dazu?
Danke schonmal
|