Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Namen für Shape per VBA ändern

Namen für Shape per VBA ändern
14.02.2018 14:32:53
earlycon
Hallo zusammen,
ich suche eine VBA-Funktion, mit der einzelnen Shape-Objekten ein neuer Name zugewiesen werden kann. Derzeit sind die Namen an die Zeile in der sie stehen gekoppelt (z.B. Auswahl52). Also ein Auswahlfeld in Zeile 52 (Spalte F).
Problem: werden Zeilen eingefügt, stimmen natürlich die ganzen Zuordnungen nicht mehr. Ich möchte jetzt sagen können, das Shape, welches jetzt z.B. in Zelle F55 steht, soll den Namen "Ausw55" bekommen. Und das in einer Schleife für alle Shapes in Spalte F.
Und wie kann ich abfragen, ob in einer Zelle überhaupt ein Shape enthalten ist ? Wenn nicht soll die Schleife einfach weiterlaufen ?
Kann mir da jemand mit einer Idee behilflich sein ?
Vielen Dank und sonnige Grüße
Stefan

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: for each Shp in .Shapes
14.02.2018 15:41:48
Fennek
Hallo,
alle Shapes in einer Schleife geht recht gut (siehe Betreff), aber vorallem braucht man eine eindeutige Zuordnung alterName - neuerName.
Dies ist als Text hier im Forum nicht so leicht zu kommunizieren.
mfg
AW: for each Shp in .Shapes
14.02.2018 16:01:58
EtoPHG
Hallo Stefan,
Und wie kann ich abfragen, ob in einer Zelle überhaupt ein Shape enthalten ist ?
Das kannst du nicht, aber das umgekehrte geht, d.h.
du kannst abfragen in welcher Zelle sich die linke obere 'Ecke' des Shapes befindet, nämlich anhand der Eigenschaft .TopLeftCell
z.B. so als Code in einem Tabellenblatt (mit Shapes)
Sub Showshapes()
Dim sh As Shape
For Each sh In Me.Shapes
MsgBox sh.Name & " befindet sich in " & sh.TopLeftCell.Address(0, 0)
Next sh
End Sub
Gruess Hansueli
Anzeige
AW: for each Shp in .Shapes
15.02.2018 06:55:52
earlycon
Guten Morgen,
hm... das ist ein Ansatz.
Vielen Dank für Eure Rückmeldungen, ich experimentiere damit mal.
Gruß
Stefan
AW: for each Shp in .Shapes
15.02.2018 08:14:22
earlycon
Sorry, noch mal eine Frage:
kann man in VBA ein Shape ansprechen, dessen Namen man nicht kennt (so wie z.B. "das Shape welches sich in Zelle B5 befindet" ?
Besten Dank und Gruß
Stefan
AW: for each Shp in .Shapes
15.02.2018 11:42:58
EtoPHG
Hallo,
Das hab ich doch oben geklärt!
Du musst alle Shapes abklappern und überprüfen, ob die Adresse der TopLeftCell-Eigenschaft mit deiner gesuchten Zell-Adresse übereinstimmt. Dann bekommst du den Namen des entsprechenden Shapes!
Gruess Hansueli
Anzeige
AW: for each Shp in .Shapes
15.02.2018 14:12:43
earlycon
Hallo Hansueli,
manchmal fällt der Groschen etwas spät, zumal ich auch nicht soo der Excelfreak bin :-)
Aber nach ein wenig probieren habe ich es jetzt hinbekommen, das den jeweiligen Shapeobjekten ein neuer Name gemäß der Zeile in der sie stehen zugewiesen wird:
For Each sh In Me.Shapes
NeuerName_Marker = "Marker" & ActiveCell.Row
sh.Select
If sh.TopLeftCell.Address(0, 0) = ActiveCell.Address(False, False) Then
sh.Name = NeuerName_Marker
Besten Dank für Deinen Rat.
Gruß
Stefan
AW: for each Shp in .Shapes
15.02.2018 14:31:40
EtoPHG
Hallo Stefan,
.Select ist in VBA einer der überflüssigsten Befehle, als lieber so:
Sub neuMarkieren()
Dim sh As Shape
For Each sh In Me.Shapes
sh.Name = "Marker" & sh.TopLeftCell.Address(0, 0)
Next sh
End Sub

Anzeige
AW: for each Shp in .Shapes
15.02.2018 15:31:40
earlycon
Du hast recht. Das war aber nur ein Überbleibsel, um zu beobachten, welches Shape er gerade am Wickel hat... :-)
Hab´s rausgelöscht !
Danke

9 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige