Sharps mit variable ansprechen (VBA Excel)

hi x-perts,

folgendes Problem:

ich habe mehere hundert verschiedene sharps (autoformen, kreise) die jeweils mit einem unterschiedlichen Namen gekennzeichnet sind. Per VBA soll
nun ein bestimmter Kreis markiert werden, den ich vorher in einem Listenfeld selektiert habe. Nun die Frage:

A (Variable aus Listenfeld)=„XXXXXX“

wie kann ich die Variable a(kann z.B. FXB000 oder FXB001 u.s.w. sein ) in den u.g. Ausdruck integieren, damit der im Listenfeld selektierte Kreis auch
markiert wird.

ActiveSheet.Shapes(???).Select

bitte, bitte mit Beispiel (ich unfähig)

thanks im Voraus

mikey

A (Variable aus Listenfeld)=„XXXXXX“

wie kann ich die Variable a(kann z.B. FXB000 oder FXB001
u.s.w. sein ) in den u.g. Ausdruck integieren, damit der im
Listenfeld selektierte Kreis auch
markiert wird.

ActiveSheet.Shapes(???).Select

Hallo,
habe das mal mit folgenden Coding probiert (und einem Kreis, den ich d’rauf-gepinselt habe):
ActiveDocument.Shapes.Item(1).Select
… hat funktioniert!

Dann habe ich mir mal kurz die Hilfe zu „.Item()“ angesehen, da steht: „Gibt ein Element einer Auflistung zurück, entweder über die Position oder über den Namen.“

Somit ist klar es muss auch über den Namen gehen…
Ich habe nur ein kleines Problem … ich weiss nicht, wo ich dem Ding einen Namen verpassen kann (dass kannst Du mir ja mal verraten), ich gehe derweil Dein Problem theoretisch weiter:

ActiveDocument.Shapes.Item(„MyShape“).Select
…wird funktionieren, wenn es ein Shape mit dem Namen „MyShape“ gibt.

oder

ReDim a(2) As String
a(1) = „MyShape1“
a(2) = „MyShape2“
ActiveDocument.Shapes.Item(a(2)).Select
…wird funktionieren, wenn es ein Shape mit dem Namen „MyShape2“ gibt. Wichtig ist (glaube ich), dass die Variable ‚a‘ mit ‚As String‘ deklariert werden muss. Den die Methode ‚.Item‘ erwartet sich entweder eine Zahl, der die Position angibt, oder einen String, der den Namen angibt … aber sicher keinen Variant- (oder sonst noch was) -Datentyp.

Wäre toll, wenn Du mir verraten könntest, wie man einem Shape einen Namen vergeben kann.

greets from michL (vienna)

hi michael,

sharpes kannst Du relativ einfach „betiteln“. Siehe Beispiel:

ActiveSheet.Shapes.AddShape(msoShapeOval, x, y, 4, 4).Select (sharp erzeugen und markieren)
Selection.name = name egal
(markiertes Sharp mit namen versehen)

die Lösung meines Problemes habe ich mittlerweile selber gefunden:

bts_mark= „Name“
ActiveSheet.Shapes(bts_mark).Select

schöne Grüße aus Frankfurt am Main

mikey