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