Datenimport bei "Fehler"
25.06.2020 13:52:48
Fred
Hallo Excel,- VBA Experten,
ich habe vor längerer Zeit bei der Recherche hier auf "Herbers Excel/VBA-Server" ein Makro entdeckt, welches mir
aus gleichen Ordner die .xlsm Dateien öffnet
die Daten ab Zeile 3 aus Tabellenblatt "ArchivExport" in meine ausgehende Mappe / "Tabelle1" kopiert.
_________________
Das funktioniert blendend bis zu dem Moment, dass wenn die xlsm nicht das Blatt "ArchivExport" hat,
Laufzeitfehler 9
"Index außerhalb des gültigen Bereichs"
erscheint.
Gelb unterlegt:
Set wksQuelle = wkbQuelle.Worksheets("ArchivExport")
__________________
Meine Frage;
Könnte ein Experte mir das Makro dahin verändern, so dass (wenn dieser "Fehler" auftaucht) die entsprechende xlsm geschlossen wird und das Makro weiter arbeitet ( weitere xlsm sucht, öffnet, Daten aus "ArchivExport" importiert)?
Das Makro
Sub Zusammenfuegen()
Dim strDateiname As String
Dim wksZiel As Worksheet, wkbQuelle As Workbook, wksQuelle As Worksheet
Dim loLetzte1 As Long
Dim loLetzte2 As Long
Dim inLetzte As Integer
Application.ScreenUpdating = False
strDateiname = Dir(ThisWorkbook.Path & "\*.xlsm")
Set wksZiel = ThisWorkbook.Worksheets("Tabelle1")
Do While strDateiname ""
If strDateiname ThisWorkbook.Name Then
Set wkbQuelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & strDateiname)
Set wksQuelle = wkbQuelle.Worksheets("ArchivExport")
loLetzte1 = wksZiel.UsedRange.SpecialCells(xlCellTypeLastCell).Row
With wksQuelle
loLetzte2 = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
inLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
.Range(.Cells(3, 1), .Cells(loLetzte2, inLetzte)).Copy _
Destination:=wksZiel.Cells(loLetzte1 + 1, 1)
End With
wkbQuelle.Close True
End If
strDateiname = Dir
Loop
Set wkbQuelle = Nothing: Set wksQuelle = Nothing: Set wksZiel = Nothing
Application.ScreenUpdating = True
End Sub
Mit freundlichen GrußFred