Grafik automatisch einfügen und aktualisieren II

hallo zusammen!

ich habe noch eine frage zu einer bereits bearbeiteten frage von mir (danke reinhard!)
wie muss der code unterhalb aussehen, damit die grafik nur auf einem tabellenblatt angezeigt wird?
…ich habe insgesamt 9 tabellenblätter in meiner arbeitsmappe drin, auf denen je eine andere grafik angezeigt werden soll
(und bitte wieder idiotensicher, danke :wink: )

hier die originalnachrichten:

Re: grafik automatisch einfügen und aktualisieren
(Autor: Reinhard E-Mail an den Autor schreiben 14.7.2010 06:26 Uhr )

beim öffnen einer excelmappe soll eine grafik automatisch und
in der größe angepasst auf ein tabellenblatt eingefügt, bzw
aktualisiert werden (…naja, insgesamt 9 grafiken auf 9
blättern) - die grafik ändert sich von zeit zu zeit, der name
bleibt allerdings gleich und befindet sich im selben ordner,
wie die arbeitsmappe.

Hallo Ram,

mal als Ansatz. Alt+F11, Doppelklick auf „DieseArbeitsmappe“, diesen Code einfügen:

Option Explicit

Private Sub Workbook_Open()
Call GrafikEinfügen
End Sub

Dann oben Einfügen—Modul, dort dann den nachstehenden Code reinkopieren.
Im Code dann die Konstanten Pfad und Gra anpassen.
Desweiteren ggfs. .Top, .Left usw.

Editor schließen.

Code wird automatisch bei jedem Öffnen der Mappe ausgeführt.
Oder in der Testphase mit Alt+F8 usw. in Excel.

Option Explicit

Sub GrafikEinfügen()
Dim wks As Worksheet, Bild As Object
Const Pfad As String = „C:\Dokumente und Einstellungen\All Users.WINDOWS\Dokumente\Eigene Bilder\Beispielbilder“
Const Gra As String = „Winter.jpg“
For Each wks In Worksheets
For Each Bild In wks.Shapes
If Bild.Name = wks.Name & „Grafik“ Then Bild.Delete
Next Bild
Set Bild = wks.Pictures.Insert(Pfad & Gra)
With Bild
.Name = wks.Name & „Grafik“
.Left = Range(„B5“).Left
.Top = Range(„B5“).Top
.Height = 50
.Width = 50
End With
Next wks
End Sub

Hallo,

Option Explicit

Sub GrafikEinfügen()
' Dim wks As Worksheet -\> weg
 dim Bild As Object
 Const Pfad As String = "C:\Dokumente und Einstellungen\All
Users.WINDOWS\Dokumente\Eigene Bilder\Beispielbilder\"
 Const Gra As String = "Winter.jpg"

**' anstelle von "wks." im Code Sheets("Name"). verwenden**

' For Each wks In Worksheets -\> weg
' For Each Bild In wks.Shapes -\> weg
' aus
' If Bild.Name = _wks.Name_ & "Grafik" Then
Bild.Delete
' wird
 If Bild.Name = _sheets("Blattname").Name_ & "Grafik" Then Bild.Delete
' usw.
' Next Bild -\> weg

 Set Bild = wks.Pictures.Insert(Pfad & Gra)

 With Bild
 .Name = wks.Name & "Grafik"
 .Left = Range("B5").Left
 .Top = Range("B5").Top
 .Height = 50
 .Width = 50
 End With
' Next wks -\> weg
End Sub

LG
Chris

Nachtrag
Sheets(„Blattname“).Name ist natürlich Quatsch. Hier kannst du direkt „Blattname“ verwenden.

also irgendwie klappt das nicht.
ich hab jetzt mal bisschen rumprobiert, allerdings markert mir der debugger immer was neues an. =( ???