Hallo Claus,
Der Link ist super. Es gibt aber noch Probleme:
Public Sub HoleDaten_PH()
'Personalzeit aus P&H
Dim Pfad As String
Dim Dateiname As String
Dim Blatt As String
Pfad = "d:\eMail\Bach\Daten\"
'Der Name enthält eine Versionsnr., die sich ändert.
Dateiname = "PEP_Personal_2013_V12.xls"
Blatt = "DBPers"
'Die Daten werden immer ab A3 eingefügt, sollten aber in der ersten
leeren Zelle Spalte A eingefügt werden. Da mehrere Dateien.
If GetDataClosedWB(Pfad, _
Dateiname, _
Blatt, _
"A2:L6000", _
Worksheets("Tabelle1").Range("A3")) Then
MsgBox "Daten importiert"
End If
End Sub
Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, _
sourceSheet As String, _
SourceRange As String, _
TargetRange As Range) As Boolean
'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
'©
t.r...@mvps.org
Dim strQuelle As String
Dim Zeilen As Long
Dim Spalten As Byte
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & _
sourceSheet & "'!" & _
Range(SourceRange).Cells(1, 1).Address(0, 0)
Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With
GetDataClosedWB = True
Exit Function
InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", _
vbExclamation, "Get data from closed Workbook"
GetDataClosedWB = False
End Function
Da es mehrere Dateien sind, habe ich obiges Makro kopiert und
"HoleDaten" entsprechend erweitert.
Dann noch ein Makro welches die einzelnen "HoleDaten...." aufruft.
Funktioniert auch gut und schnell, aber die Daten werden immer ab "A3"
eingefügt.
Hoffe Du kannst helfen.