Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Name eines Shapes ermitteln

Name eines Shapes ermitteln
09.03.2005 10:50:09
Torsten
Hallo beisammen,
mit dem folgenden Code kann ich aus meiner PERSONL.xls ein Logo in andere Tabellen kopieren:

Sub LOGO()
If MsgBox("Möchten Sie das Logo jetzt einfügen?", vbYesNo) = vbYes Then
Application.ScreenUpdating = False
Windows("PERSONL.XLS").Visible = True
Sheets("Tabelle1").Shapes("Picture 1").Copy
ActiveWindow.Visible = False
ActiveSheet.Paste
Application.ScreenUpdating = True
Else
End If
End Sub

Dafür muß ich natürlich den Namen des Shapes kennen.
Wie kann ich diesen nun grundsätzlich über VBA ermitteln?
Vielen Dank für Eure Tips.
Gruß
Torsten
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Name eines Shapes ermitteln
09.03.2005 11:11:45
harry
hi,
MsgBox Sheets("Tabelle1").Shapes(1).Name
liefert dir den Namen.
ps: warum der umweg über personl.xls? warum nicht
ActiveSheet.Pictures.Insert ("PFAD DATEINAME")
liebe grüße,
harry
AW: erledigt - mT
09.03.2005 11:22:24
Torsten
Hallo Harry,
vielen Dank für Deine Hilfe.
Über PERSONL.xls, weil ich's halt nicht besser wußte.
Deinen diesbezüglichen Tip schau mir dann auch noch an.
Gruß
Torsten
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Shape-Namen in Excel mit VBA ermitteln


Schritt-für-Schritt-Anleitung

Um den Namen eines Shapes in Excel über VBA zu ermitteln, kannst Du folgende Schritte befolgen:

  1. Öffne die Excel-Anwendung und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf „VBAProject“ klickst und „Einfügen“ > „Modul“ auswählst.

  3. Kopiere den folgenden Code in das Modul:

    Sub GetShapeName()
       MsgBox Sheets("Tabelle1").Shapes(1).Name
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro GetShapeName aus, um den Namen des ersten Shapes in „Tabelle1“ anzuzeigen.

Mit diesem einfachen Beispiel kannst Du schnell den excel vba shape name ermitteln.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass die Tabelle, von der Du den Shape-Namen abrufen möchtest, tatsächlich existiert und dass ein Shape in dieser Tabelle vorhanden ist.
  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Überprüfe, ob Du den richtigen Namen für das Shape verwendest. Verwende Sheets("Tabelle1").Shapes um die verfügbaren Shapes aufzulisten.

Alternative Methoden

Eine alternative Methode, um den Namen eines Shapes zu ermitteln, besteht darin, den Namen direkt bei der Erstellung des Shapes anzugeben. Dadurch kannst Du später den vba shape name einfacher referenzieren.

Sub CreateShape()
    Dim newShape As Shape
    Set newShape = Sheets("Tabelle1").Shapes.AddShape(msoShapeRectangle, 50, 50, 100, 100)
    newShape.Name = "MeinRechteck"
End Sub

Mit dieser Methode kannst Du sicherstellen, dass Du immer den gewünschten shape name hast.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie Du den Namen aller Shapes in einer Tabelle auflisten kannst:

Sub ListShapeNames()
    Dim shp As Shape
    Dim shapeNames As String

    For Each shp In Sheets("Tabelle1").Shapes
        shapeNames = shapeNames & shp.Name & vbCrLf
    Next shp

    MsgBox "Namen der Shapes:" & vbCrLf & shapeNames
End Sub

Dieses Skript zeigt alle names of shapes in einer MsgBox an und ist besonders nützlich, wenn Du mehrere Shapes hast.


Tipps für Profis

  • Nutze die shape.name-Eigenschaft in Kombination mit Schleifen, um alle Shapes in einem Arbeitsblatt zu durchlaufen und deren Eigenschaften zu ändern.
  • Verwende die Shapes-Sammlung, um gezielt auf Shapes zuzugreifen, anstatt sie über ihre Position zu referenzieren, um potenzielle Fehler zu vermeiden.
  • Halte Deine Shapes organisiert, indem Du sie mit beschreibenden Namen versiehst. Dies erleichtert die spätere Arbeit mit den vba shapes name.

FAQ: Häufige Fragen

1. Wie kann ich den Namen eines spezifischen Shapes ermitteln?
Du kannst den Namen eines bestimmten Shapes ermitteln, indem Du die Indexnummer im Shapes-Objekt änderst, z.B. Sheets("Tabelle1").Shapes(2).Name.

2. Was mache ich, wenn ich den Namen eines Shapes nicht kenne?
Verwende den oben genannten Code, um eine Liste aller Shape-Namen auf der Tabelle auszugeben. Dies hilft Dir, den gewünschten excel shape name zu finden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige