Hallo!
ich nutze folgenden Code zum importieren von einer Exceldatei mit mehreren Arbeitsblättern.
Sub copy_bericht()
Application.ScreenUpdating = False
Application.AskToUpdateLinks = False
'** Kopieren des ersten Sheets aus der angegebenen KW-Arbeitsmappe
'** Dimensionierung der Variabeln
Dim strPath As String
'** Vorgaben definieren
Set wbact = ThisWorkbook
Set wsmas = ThisWorkbook.Sheets("Master")
'** Durchlaufen der Tabellen (KW) - Liste
For a = 65 To 100
'** Nur ausführen, wenn ein Tabellenblattname vorhanden ist
If wsmas.Cells(a, 5).Value <> "" Then
'** Pfad zusammenbauen
strPath = wsmas.Range("R3").Value & wsmas.Cells(a, 5).Value
'** Blattnamen auslesen
wsname = Left(wsmas.Cells(a, 5).Value, InStr(1, wsmas.Cells(a, 5).Value, ".") - 1)
'** Prüfen, ob das Sheet bereits vorhanden ist, wenn ja, vorher löschen
Dim blatt As Object
For Each blatt In Sheets
If blatt.Name = wsname Then
Application.DisplayAlerts = False
blatt.Delete
Application.DisplayAlerts = True
End If
Next blatt
'** Position des neuen Blattes ermitteln
i = Worksheets.Count
'** KW-Datei öffnen
Workbooks.Open strPath
'** Blatt kopieren
With ActiveWorkbook
.Sheets.Select
.Sheets.Copy Before:=Workbooks(wbact.Name).Sheets(Workbooks(wbact.Name).Sheets.Count)
.Close savechanges:=True
End With
'** Namen für neues Sheet setzen
Workbooks(wbact.Name).Activate
ActiveSheet.Name = wsname
Sheets("Master").Select
End If
Next a
End Sub
In einem Arbeitsblatt ist in der Orginaldatei auch eine Grafik (Logo). Wenn ich nun die Datei einlesen, "verliere" ich das Logo auf dem Arbeitsblatt mit der Fehlermeldung (Bild als Anhang), dass der PC zuwenig Arbeitsspeicher hätte (kann nicht sein) oder dass das Bild beschädigt sei (kann auch nicht sein). meine Vermutung ist, dass der Link zu der Grafik beim importieren verloren wird oder defekt wird.
Wie kann ich das verhindern? Hat jemand eine Idee?