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
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)
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
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