Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Shape / Picture löschen funktioniert nicht

Shape / Picture löschen funktioniert nicht
Jens
Hallo zusammen,
ich habe da ein Makro, welches in verschiedenen Zellen abhängig vom Inhalt ein Bild einfügt. Am Anfang des Makros sollen alle Bilder gelöscht werden, da sich die Inhalte der Zellen ständig ändern.
Code:
Sub bilder()
Dim zeile, abstand, hoehe As Integer
Dim objPicture As Picture
Dim shpShape As Shape
Dim lngRow As Long
Dim signum, pfad As String
pfad = Sheets("Einstellungen").Cells(3, 5)
For Each shpShape In ActiveSheet.Shapes
If shpShape.TopLeftCell.Rows > 25 Then shpShape.Delete
Next shpShape
signum = "C:\Unterschrift.jpg"
With Cells(39, 2)
Set objPicture = .Parent.Pictures.Insert(signum)
objPicture.Left = .Left
objPicture.Top = .Top
With objPicture
.ShapeRange.LockAspectRatio = msoTrue
.Placement = xlMoveAndSize
.PrintObject = True
.ShapeRange.Height = 45
.ShapeRange.Rotation = 0#
.ShapeRange.PictureFormat.TransparentBackground = True
.ShapeRange.PictureFormat.TransparencyColor = RGB(255, 255, 255)
End With
End With
End If
With Cells(763, 2)
Set objPicture = .Parent.Pictures.Insert(signum)
objPicture.Left = .Left
objPicture.Top = .Top
With objPicture
.ShapeRange.LockAspectRatio = msoTrue
.Placement = xlMoveAndSize
.PrintObject = True
.ShapeRange.Height = 45
.ShapeRange.Rotation = 0#
.ShapeRange.PictureFormat.TransparentBackground = True
.ShapeRange.PictureFormat.TransparencyColor = RGB(255, 255, 255)
End With
End With
End If
lngRow = 47
For zeile = 47 To 753 Step 3
If Rows(zeile - 1).EntireRow.Hidden = False Then
If Range("E" & zeile) "" Then
If Rows(zeile).rowheight Rows(zeile).rowheight = 95
End If
With Cells(lngRow, 5)
Set objPicture = .Parent.Pictures.Insert(pfad & Cells(lngRow, 5))
objPicture.Top = .Top
objPicture.Left = .Left
With objPicture
.ShapeRange.LockAspectRatio = msoTrue
.Placement = xlMoveAndSize
.PrintObject = True
.ShapeRange.Height = 90
.ShapeRange.Rotation = 0#
.ShapeRange.IncrementTop 3
.ShapeRange.IncrementLeft 3#
End With
End With
End If
End If
lngRow = lngRow + 3
Next zeile
Das Einfügen der Bilder funktioniert wunderbar. Aber mit dem löschen klappt das nicht so ganz.
Alle Bilder zwischen Zeile 47 und 753 werden gelöscht, so wie ich es möchte. Nur die beiden Bilder in Zeile 39 und 763 bleiben da. Schiebe ich die Bilder aber in den Bereich der anderen Zeilen werden sie gelöscht.
Was mache ich hier falsch? Die Bilder sind doch mit allen Attributen etc. identisch.
Vielen Dank für Eure Hilfe
Der Jens

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Shape / Picture löschen funktioniert nicht
23.09.2009 22:30:32
Jens
Mir hat das mal wieder keine Ruhe gelassen und habe doch noch rausgefunden, woran es liegt. Die beiden Zellen mit den Bildern, die nicht gelöscht werden, sind LEER. Die anderen nicht. Wenn ich da also was reinschreibe klappt alles.
Verstehen tue ich es trotzdem nicht, wieso das Löschen nur bei Zellen mit Inhalt geht. Finde in der VBA-Hilfe keinen Hinweis darauf.
;-(
Trotzdem danke an alle, die sich bemühen wollten.
Jens
AW: Shape / Picture löschen funktioniert nicht
23.09.2009 22:31:22
Luschi
Hallo Jens,
in dieser Zeile ist bei Dir ein 's' zuviel (.Rows):
If shpShape.TopLeftCell.Row > 25 Then shpShape.Delete
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Shape / Picture löschen funktioniert nicht
23.09.2009 23:41:29
Jens
Hey Luschi,
du hast mir ja schon zum zweiten Mal geholfen. Bekommst du hier Geld?
*grins*
Vielen Dank!!! Klappt mal wieder super. So langsam steigere ich mich mit VBA dank der Forums- (und deiner) Hilfe.
Grüße Jens
aus Berlin
PS: wo ist denn klein Paris?
Klein Paris
25.09.2009 11:41:50
Lischu
...ist ein Vorort von Borna

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige