ich hoffe der Code-Auszug ist hinreichend verständlich.
Set sh = ActiveSheet.Shapes.AddShape(msoShapePentagon, ActiveCell.Left, ActiveCell.Top, _
ActiveCell.Height, ActiveCell.Height)
sh.Select
With Selection
.Characters.Text = fte & " FTE"
.Placement = xlMoveAndSize
.name = "Zeit " & festNr
End With
Set rng = Worksheets("Balkenplan").Range(Cells(findenNr.Row, findenstart.Column).Address)
Set shp = Worksheets("Balkenplan").Shapes("Zeit " & festNr)
shp.Left = rng.Left
shp.Top = rng.Top
shp.Width = Range(findenstart.Address, findenende.Address).Width
Es wird im Grunde vorher ein Zelleninhalt angepeilt und dieser als Name für das Shape benutzt.
Soweit so gut.
Nun sehe ich das Problem, wenn versehentlich der selbe Name für ein Shape verwendet wird, sprich der gleiche Befehl auf die gleiche Weise zweimal angewendet wird, dann gibt es zwei Shapes mit dem selben Namen und das zweite Shape reagiert natürlich nicht auf das Makro (verschiebt, streckt oder staucht sich also nicht).
D.h. ich möchte eine Kniff einbauen, so dass bei einem gleichen Namen mit MsgBox ausgegeben wird, dass das nicht zulässig ist und zugleich soll das Objekt nicht erstellt warden bzw. das Makro vor "AddShape" abgebrochen warden.
Ich habe überlegt einen If-Befehl einzubauen, weiß aber ehrlich gesagt nicht so richtig wo ich es platzieren soll.
Die zeitliche Abfolge des Makros macht das ganze etwas tricky