Ich hab es jetzt durch Hilfe hinbekommen.
Falls jemand sowas ähnliches mal braucht:
Sub Button()
Dim wksZiel As Worksheet
Dim wkbQuelle As Workbook, strQuelle As String
Dim wksQuelle As Worksheet
Dim Zeile_Q As Long
Dim Zeile_Z As Long
Dim Zeile_Z1 As Long
Dim shpBild As Shape
Dim ch As Object
strQuelle = "C:Dateipfad" 'Quellenpfad eintragen
If Dir(Pathname:=strQuelle) = "" Then
MsgBox "Datei nicht gefunden!" & vbLf & strQuelle, vbOKOnly, "Import Daten"
Else
Set wksZiel = ActiveWorkbook.Worksheets(1) 'Register 1 wird als Ziel zum einfügen gewählt
Application.ScreenUpdating = False
With wksZiel
Zeile_Z1 = 14
Zeile_Z = .UsedRange.Row + .UsedRange.Rows.Count - 1
If Zeile_Z >= Zeile_Z1 Then 'Bedingung das es ab Zeile 14 der Import ausgegeben wird
For Each shpBild In ActiveSheet.Shapes 'Zuerst wird der Inhalt nach Bildern abgesucht und gelöscht
If shpBild.Type = msoPicture Then
shpBild.Delete
End If
Next
Application.DisplayAlerts = False
For Each ch In ActiveSheet.ChartObjects 'Alte Charts und Diagramme werden nach den Bildern gelöscht
ch.Delete
Next
.Range(.Rows(Zeile_Z1), .Rows(Zeile_Z)).Clear
End If 'Altinhalte werden zum Schluss gelöscht
End With
'Quelldatei soll auch schreibgeschützt öffnen
Set wkbQuelle = Application.Workbooks.Open(Filename:=strQuelle, ReadOnly:=True)
Set wksQuelle = wkbQuelle.Sheets(3) 'ggf. anpassen jeh nachdem welcher Register gezogen werden soll
With wksQuelle
Zeile_Q = .UsedRange.Row + .UsedRange.Rows.Count - 1
.Range(.Rows(1), .Rows(Zeile_Q)).Copy wksZiel.Cells(Zeile_Z1, 1)
End With
Application.CutCopyMode = False
wkbQuelle.Close savechanges:=False
Application.ScreenUpdating = True
End If
End Sub
Hier wird ein Button erstellt das eine Datei importiert, es werden die vorherigen Daten erst mal gelöscht (Inhalt, Bilder, Charts) und dann die Datei importiert. Ist bei mir jetzt Sinnvoll da ich knapp 30 verschiedene ExcelDateien brauch und somit eine Master Excel habe und die welche ich brauche einfach schnell importiere anstatt die immer wieder zu suchen.
hoffe das hilft jemanden.