Hallo, wie kann ich es einrichten, dass ich nicht immer gefragt ob ich Änderungen an der importierten Datei speichern möchte?
Public Sub Daten_mehrerer_Dateien_zusammenfuehren()
On Error GoTo errExit
Dim WBQ As Workbook
Dim WBZ As Workbook
Dim varDateien As Variant
Dim lngAnzahl As Long
Dim lngLastQ As Long
Dim Dateiname As String
Dim letztezeile As Long
Dim K As Long
Set WBZ = ActiveWorkbook 'Altdaten auf Zielblatt löschen
WBZ.Worksheets(1).Range("A2:IV65536").ClearContents
varDateien = _
Application.GetOpenFilename("Datei (*.xlsx),*.xlsx", False, "Bitte gewünschte Datei(en) markieren", False, True)
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
For lngAnzahl = LBound(varDateien) To UBound(varDateien)
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
'Cells(lngAnzahl + 1, "K") = varDateien(lngAnzahl)
Set WBQ = Workbooks.Open(Filename:=varDateien(lngAnzahl))
Dateiname = WBQ.Name
Dateidatum = Left(Dateiname, 17)
Dateidatum = Right(Dateidatum, 10)
WBQ.Worksheets(1).Range("K2") = Dateidatum
WBQ.Worksheets(1).Range("K2").Copy
letztezeile = WBQ.Worksheets(1).Cells(1048576, 1).End(xlUp).Row
For K = 3 To letztezeile
WBQ.Worksheets(1).Cells(K, 11).Select
ActiveSheet.Paste
Next K
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
lngLastQ = WBQ.Worksheets(1).Range("A65536").End(xlUp).Row
WBQ.Worksheets(1).Range("A2:Z" & lngLastQ).Copy _
Destination:=WBZ.Worksheets(1).Range("A" & WBZ.Worksheets(1).Range("A65536").End(xlUp).Row + 1)
WBQ.Close
Next
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
MsgBox "Es wurden " & UBound(varDateien) & " Dateien zusammengefügt.", 64
Exit Sub
errExit:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
If Err.Number = 13 Then
MsgBox "Es wurde keine Datei ausgewählt"
Else
MsgBox "Es ist ein Fehler aufgetreten!" & vbCr _
& "Fehlernummer: " & Err.Number & vbCr _
& "Fehlerbeschreibung: " & Err.Description
End If
End Sub
|