Ich möchte z.B. in Zelle A34 ein Bild welches sich täglich ändert in
bestimmter Größe einfügen. Das Bild wird täglich neu erstellt und besitzt den
sinnigen Namen "Bild.jpg". Als Namen habe ich dem Bild "Bild1" zugewiesen.
Habe mir folgenden Makro gebastelt, welcher mich aber immer wieder in der
Form überlistet, dass im Bild immer wieder die Eigenschaftseinstellung
"Ansichtsverhältnis sperren" und "Relativ zur Bildgröße" eingeschaltet ist.
Wie kann ich dies in folgendem Makro ausschalten:
Sheets("Tabelle1").Select
ActiveSheet.Shapes("Bild1").Select
Selection.Delete
Range("A34").Select
ActiveSheet.Pictures.Insert("Bild.jpg").Select
Selection.ShapeRange.Height = 210
Selection.ShapeRange.Width = 470
Selection.ShapeRange.Left = 0
Selection.ShapeRange.Top = 448
Selection.Name = "Bild1"
Also das Bild soll im Endeffekt 21x470 groß sein. Ansonsten funktioniert der
Makro.
Ein schlauer und einfacher Befehl ist gesucht. Habe nur geringe VBA-Erfahrung.
--
Thx
Sailor
> Ich möchte z.B. in Zelle A34 ein Bild welches sich täglich ändert in
> bestimmter Größe einfügen. Das Bild wird täglich neu erstellt und besitzt den
> sinnigen Namen "Bild.jpg". Als Namen habe ich dem Bild "Bild1" zugewiesen.
...
> Also das Bild soll im Endeffekt 21x470 groß sein.
...
> Ein schlauer und einfacher Befehl ist gesucht. Habe nur geringe VBA-Erfahrung.
Dann ist meine Empfehlung das Du nach Möglichkeit ohne Select /
Selection arbeitest, das produziert früher oder später Fehler.
Außerdem ist es langsam und "flackert mit dem Bildschirm". Zu 99,9%
braucht man es nicht.
Andreas.
Sub Test()
Dim S As Shape, P As Picture
'In Tabelle1
With Sheets("Tabelle1")
'Fehlerbehandlung aus falls Bild nicht da
On Error Resume Next
'Bild löschen
.Shapes("Bild1").Delete
'Fehlerbehandlung ein
On Error GoTo 0
'Bild einfügen
Set P = .Pictures.Insert("Bild.jpg")
'Namen vergeben
P.Name = "Bild1"
'Shape-Object vom Bild holen
Set S = .Shapes("Bild1")
'Seitenverhältnis aus
S.LockAspectRatio = msoFalse
'Größe setzen
S.Height = 210
S.Width = 470
'Positionieren
With .Range("A34")
S.Top = .Top
S.Left = .Left
End With
End With
End Sub
Hervorragend! Hat auf Anhieb bestens geklappt.
Jetzt habe ich noch ein weiteres Problem, evtl. kannst Du mir bei der
Problembeseitigung helfen, damit ich beruhigt den Vatertag genießen kann:
Das Bild eingebettet in Tabelle1, sowie ein kleines Worddoc mit der
Namensbezeichnung "TMB" (tägl. Marktbericht), ebenfalls eingebettet in
gleicher Tabelle in Zelle "A6", bilden die Basis für eine tägliche Preisliste
die via WinFax und/oder eMail an einen augewählten Kundenkreis geht. Jeder
Kunde hat einen extra TAB, welcher durch Verweise zu Tabelle1 aktualisiert
werden.
Nun müssen nur noch aus der "Tabelle1" das Worddoc (Zelle "A6") und das Bild
(Zelle "A34") in das jeweilige "Kunden-Tab" in Kopie übertragen werden. Beim
Worddoc darf es keine Verknüpfung sein, da u.U. individuelle und
kundenbezogene Textveränderungen erfolgen können/müssen. Die Kunden-Tabs
können bis zu 30 und mehr Tabs sein. Die individuellen Kundendaten werden aus
einer Kundenmatrix via SVerweis eingefügt.
Ich hoffe, dass ich das verständlich geschrieben haben.
Kannst Du oder irgend ein anderer aus dem www-Excel-Orbit mit kurzen
VBA-Codes helfen? DANKE im voraus!
Nochmals, ich bin kein VBA-Künstler.
--
Thx
Henning (Rocholl)
alias "Sailor"
"Andreas Killer" schrieb:
> Sailor schrieb:
>
> > Ich möchte z.B. in Zelle A34 ein Bild welches sich täglich ändert in
> > bestimmter Größe einfügen. Das Bild wird täglich neu erstellt und besitzt den
> > sinnigen Namen "Bild.jpg". Als Namen habe ich dem Bild "Bild1" zugewiesen.
> ....
> > Also das Bild soll im Endeffekt 21x470 groß sein.
> ....
> .
>