Per VBA eingefügte Bilder nicht in Datei

Hallo,

Nach Anweisung des Benutzers werden bestimmt Bilder in eine Arbeitsmappe eingefügt. Allerdings sind die Bilder nur Verweise und werden nicht in die Excel Datei eingebunden, so dass wenn eine gespeicherte Kopie mit dem Blatt weitergegeben wird, die Bilder nicht erscheinen und man nur das kleine rote x mit der Bemerkung "Das verknüpfte Bild konnte nicht gefunden werden.
Ich verwende die Methode: ActiveSheet.Pictures.Insert(pathToImageA).Select

Wenn ich sie von Hand mit Einfügen->Grafik einfüge bleiben die Bilder in der Datei erhalten.

Ich verwende Office 2010.

Desweiteren Speichere ich ein einzelnes Tabellenblat mit der Methode:

ActiveSheet.Copy
For Each allpic In ActiveSheet.Shapes
Select Case allpic.Name
Case „logo1“, „logo2“, „Iso“, „Ansicht“
Case „Beton_1“, „Beton_2“ 'ActiveX Auswahlboxen
allpic.Delete
Case Else
allpic.Delete
End Select
Next
shName = ActiveSheet.CodeName
With ActiveWorkbook.VBProject.VBComponents(shName).CodeModule
.DeleteLines 1, .CountOfLines
End With
ActiveWorkbook.SaveAs filename:=file, FileFormat:=sFileFormat

Wenn ich die gespeicherte Datei öffne bekomme ich die Markoabfrage, obwohl ja keine Makros mehr enthalten sein dürfen.

Danke für die Hilfe,
Björn

Hi Björn,
für VBA-Probleme bin ich der falsche Ansprechpartner

Gruss

M@x

Hallo Björn. Ich habe den Eindruck, daß Du da viel fiter bist als ich und ich Dir leider nicht weiterhelfen kann. Obwohl ich mir die Frage stelle, warum Du es so kompliziert machst. Im Laufe der Jahre habe ich mir angewöhnt nicht mehr stundenlang nach einer anderen Lösung zu suchen, wenn ich einen Weg gefunden habe wie es funktioniert. z.B. Einfügen, Grafik.

Bei Deiner 2. Frage verstehe ich den Vorgang bzw. nicht was das Problem ist. Wenn Du mir genau sagst was Du vorhast bzw. was Excel machen soll, kann ich Dir vielleicht helfen.
Gruß
Lilo

Hallo,

Nach Anweisung des Benutzers werden bestimmt Bilder in eine
Arbeitsmappe eingefügt. Allerdings sind die Bilder nur
Verweise und werden nicht in die Excel Datei eingebunden, so
dass wenn eine gespeicherte Kopie mit dem Blatt weitergegeben
wird, die Bilder nicht erscheinen und man nur das kleine rote
x mit der Bemerkung "Das verknüpfte Bild konnte nicht gefunden
werden.
Ich verwende die Methode:
ActiveSheet.Pictures.Insert(pathToImageA).Select

Wenn ich sie von Hand mit Einfügen->Grafik einfüge bleiben die
Bilder in der Datei erhalten.

Ich verwende Office 2010.

Desweiteren Speichere ich ein einzelnes Tabellenblat mit der
Methode:

ActiveSheet.Copy
For Each allpic In ActiveSheet.Shapes
Select Case allpic.Name
Case „logo1“, „logo2“, „Iso“, „Ansicht“
Case „Beton_1“, „Beton_2“ 'ActiveX Auswahlboxen
allpic.Delete
Case Else
allpic.Delete
End Select
Next
shName = ActiveSheet.CodeName
With ActiveWorkbook.VBProject.VBComponents(shName).CodeModule
.DeleteLines 1, .CountOfLines
End With
ActiveWorkbook.SaveAs filename:=file, FileFormat:=sFileFormat

Wenn ich die gespeicherte Datei öffne bekomme ich die
Markoabfrage, obwohl ja keine Makros mehr enthalten sein
dürfen.

Danke für die Hilfe,
Björn

Guten morgen,
Entschuldige, ich habe mich bei dem 2. Problem etwas zu kurz gehalten. Es war doch zu Spät.
Folgendes: Ich möchte ein Tabellenblatt in dem Ereignis Code wie zB „Private Sub Worksheet_Change“ steht kopieren. Es soll in der Kopie der ganze Code gelöscht werden, da er nicht mehr benötigt wird und nur unnötig eine Excel Makro-Warnung beim öffnen bringt.

Gelösht wird er Code mit:
shName = ActiveSheet.CodeName
With ActiveWorkbook.VBProject.VBComponents(shName).CodeModule
.DeleteLines 1, .CountOfLines
End With
allerdings bekomme ich obwohl kein Code mehr in der Datei zu finden ist, immernoch die Warnung von Excel beim öffnen, dass Makro enthalten sind und ob diese aktiviert werden sollen.

Björn

Hallo, vielleicht hilft Dir das weiter :

http://www.herber.de/forum/archiv/316to320/t319188.htm

http://www.office-loesung.de/ftopic161664_0_0_asc.php

Ich tippe auch drauf, daß noch irgendetwas im Hintergrund läuft.
Gruß Lilo

Danke Lilo,
in den Links gabs zwar keine Lösung aber sie haben mich auf den richtigen Pfad geführt.
Es mussten nicht nur alle Zeilen aus den VB Komponenten gelöscht werden sondern auch die Komponenten an sich. Ich bin mir zwar nicht sicher wieso sie nicht im VBPojekt-Explorer sichtbar waren, aber mit folgendem Makro konnte ich alle VBA-Code Reste entfernen und habe nun eine saubere Datei ohne Makros.

http://www.exceltip.com/show_tip/Modules,_Class_Modu…

So, nun zu meinem ersten Problem mit den Bildern. Habe gelesen, dass die Erstellung einer Verknüpfung nur unter 2010 passieren soll. Unter 2007, 2003 werden angeblich die Bilder bei Verwendung der ActiveSheet.Pictures.Insert(pathToImageA).Select Methode in die Datei eingebunden.
Ich werde es unter 2003 mal testen. 2007 habe ich leider nicht.

Da bin ich aber froh. Auch wenn ich nicht direkt helfen konnte, aber wie man sieht hilft auch manchmal ein Gedanke der von einer andere Seite kommt. Da ich eh nur excel 2007 habe. kann ich Dir da leider nicht helfen. Bin eh der Meinung, daß die älteren Programm einfach zu nutzen sind. Die neuen haben zwar graphisch mehr Möglichkeiten , aber wenn ich da noch an Excel 5 denke und an Makros. Man was war das einfach. Also viel Glück.

So immer dieses hin und her mit Excel. Nun habe ich einen Workaround für die Probleme mit den Bildern. Benutze nun statt:
ActiveSheet.Pictures.Insert(pathToImageA).Select
ActiveSheet.Shapes.AddPicture(pathToImageA, msoFalse, msoTrue, Range(„C7“).Left, Range(„C7“).Top, 462.12, 446.2499).Select
Damit hat man die Möglichkeit mit den Argumenten 2 und 3 Excel zu sagen ob das Bild eingebunden oder nur verlinkt werden soll.

Es lag doch nicht an der Tatsache, dass nicht alles gelöscht wurde. Es gibt definitiv keinen VBA Code mehr in dem Workbook. Es hängt leider an der Tatsache wie Excel mit dem Parameter FileFormat speichert habe ich das gefühlt:
ActiveWorkbook.SaveAs filename:=file, FileFormat:=sFileFormat
für alle Excel Versionen bis einschließlich 2003 setze ich sFileFormat = xlNormal
für 2007 und 2010 = xlExcel8, da die Firma hauptsächlich 2003 verwendet.

Wenn ich die per VBA gespeicherte Datei aufrufe bekomme ich die Makro-Aktivierungs Abfrage. Drücke ich nun einfach nur „Strg+S“ für Speichern, schließe und öffne die Datei erneut habe ich keine Abfrage mehr.

sorry, bin da der falsche Ansprechpartner…

bin ich überfragt, bin wohl doch nicht der Experte, der ich glaubte…

tut mir leid,
simba