Problem
Ein Sheet soll aus einer anderen Datei rauskopiert und hier eingelesen werden
Ansatz
Über manuelles einlesen
Lösung
Benutzter Funktion:
' Prüfen ob workbook bereits offen Function IsWorkbookOpen(strWB As String) As Boolean On Error Resume Next IsWorkbookOpen = Not Workbooks(strWB) Is Nothing End Function
Funktion kopiereSheet:
Sub kopiereSheet(zielDatei As String, materialnummer As String) Dim ZWB As Workbook Dim letzteZeileQuelle, letzteSpalteQuelle As Integer Dim QWS As Worksheet, ZWS As Worksheet ' Debug.Print ZWB.ActiveSheet.Name & "<<<< ZWB VORHER QWS >>>>" & QWS.Name If Not IsWorkbookOpen(zielDatei) Then Application.DisplayAlerts = False Workbooks.Open Tabelle1.Cells(2, 2) & zielDatei Application.DisplayAlerts = True End If Set ZWB = Workbooks(zielDatei) Set QWS = QWB.Worksheets(materialnummer) ' Quelle ZWB.Sheets.Add after:=ZWB.Worksheets(1) ZWB.ActiveSheet.Name = materialnummer Set ZWS = ZWB.ActiveSheet ' Finde die letzte Zeile letzteZeileQuelle = QWS.Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row + 1 letzteSpalteQuelle = QWS.Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row + 1 Dim i, j As Integer For i = 1 To letzteZeileQuelle For j = 1 To letzteSpalteQuelle ZWS.Cells(i, j) = QWS.Cells(i, j) Next j Next i Debug.Print ZWB.ActiveSheet.Name & "<<<< ZWB NACHHER QWS >>>>" & QWS.Name ZWB.Sheets(1).Activate End Sub