Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1500to1504
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

Bild identifizieren

Bild identifizieren
09.07.2016 19:09:07
Rosenfeld
Hallo zusammen,
ich habe in einer Spalte unterschiedliche Bilder eingefügt.
Wenn ich das einzelne Bild per Hand auswähle, wird dieses im Namensfeld wechselweise als Grafik oder Picture dargestellt.
Mit:
Zeile = 0
For Each Shapes In myDocument.Shapes
Range("BX2").Offset(Zeile, 0).Value = Shapes.Name
Zeile = Zeile + 1
Next Shapes
werden alle Bilder fortlaufend von oben nach unten als Picture (1 bis 284) bezeichnet.
In der Realität hat aber das 1. Bild die Bezeichnung "Grafik 1" und das 284. Bild die Bezeichnung "Picture 1150".
Wie muß ich es anstellen, dass der wirkliche Name des Bildes notiert wird?
Gruß
Siegfried

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild identifizieren
09.07.2016 19:26:46
Hajo_Zi
Hallo Siegfried,
bei mir werden keine Bilder umbenannt. Das würde mich auch wundern. Da der Befehl zum umbenennen nicht Bestandteil des Codes ist.
Hast Du vielleicht den falschen Code gepostet?

AW: Bild identifizieren
09.07.2016 20:29:44
Rosenfeld
Hi Hajo
das ist schon der richtige Code aus der Hilfe.
Ich will auch keine Bilder umbenennen, sondern nur den Namen des Bildes notieren.
Gruß
Siegfried

AW: Bild identifizieren
09.07.2016 20:31:52
Werner
Hallo Hajo,
hast du dich verlesen oder wie kommst du darauf, dass die Bilder umbenannt werden sollen? Ich konnte im Post von Siegfried diesbezüglich nichts finden.
Gruß Werner

Anzeige
AW: Bild identifizieren
09.07.2016 20:28:05
Werner
Hallo Siegfried,
ich glaube nicht, dass ich dir helfen kann. Trotzdem stellt sich die Frage, was du eigentlich erreichen willst. Willst du nur die Namen deiner Bilder in der Spalte in den Zellen BX2 bis BX? aufgelistet haben, oder was hast du eigentlich vor? Das wäre vielleicht für die, die dir helfen können schon interessant.
Mich würde interessieren, ob du die Bilder mit den Namen, die dir dein Code in den Zellen BX2 bis BX? ausgibt, korrekt ansprechen kannst. Z.B.: Picture284.Select, wird das richtige Bild ausgewählt? Wenn ja, vielleicht hätte sich damit dein Problem ja schon erledigt.
Gruß Werner

Anzeige
AW: Bild identifizieren
09.07.2016 20:35:17
Rosenfeld
Hi Werner,
genau das ist das Problem, dass eben mit der Bezeichnung die der Code liefert (Picture 284) nicht das richtige Bild (das wäre Picture 1150) ausgewählt wird.
Das Ziel ist klar, ich will das richtige Bild haben und eben nicht irgendein Bild.
Gruß
Siegfried

AW: Dann stell ich mal auf offen. owT
09.07.2016 20:37:28
Werner

AW: Dann stell ich mal auf offen...
09.07.2016 20:39:02
Werner
...oh Mann, dann sollte ich halt auch den Haken setzen!!

nicht gesetzt
10.07.2016 11:14:32
Hajo_Zi
lasse den Fragesteller entscheiden ob offen.
Gruß Hajo

AW: Bild identifizieren
10.07.2016 07:05:40
firmus
Hallo Siegfried,
benutze doch mal den Debugger und schaue dir dann im Überwachungsfenster alle Attribute einer SHAPE an.
Es gibt dort z.B. auch neben dem Namen den AlternativeText.
Beispiel:
ActiveSheet.Cells(i, 3).Value = ActiveSheet.Shapes(i).Name
ActiveSheet.Cells(i, 4).Value = ActiveSheet.Shapes(i).AlternativeText
Gruß
Firmus

Anzeige
AW: Bild identifizieren
10.07.2016 10:58:04
Rosenfeld
Hi Firmus,
das mit dem Alternativtext habe ich schon probiert. Bei einigen Bildern gibt es einen Alternativtext, bei anderen nicht.
Gruß
Siegfried

AW: Bild identifizieren
10.07.2016 10:08:10
fcs
Hallo Siegfried,
hier hat man mit verschiedenne Problemen zu kämpfen.
1. Wenn eine Grafik/Bild eingefügt wird, dann vergibt Excel einen lokalen Namen (das ist der Name der im Adressfeld angezeigt wird, wenn man die Grafik selektiert; z.B. Grafik 1) und einen internen englischen Namen; z.B. Picture 1).
Unter VBA kann man beide Namen verwenden um das Shape anzusprechen.
2. In der Liste der Shapes werden diese intern so verwaltet, dass ein neues Shape immer am Ende der Liste angefügt wird.
Ändert man die Position eines Shapes in der Tabelle, dann stimmt die Reihenfolge in der Shape-Liste nicht mehr mit der Reihenfolge im Blatt überein.
3. Unter VBA hab ich keine Möglichkeit gefunden, den lokalen Namen aus irgendeiner der Eigenshcaften eines Shapes auszulesen. Du musst also mit den internen Namen leben.
4. Benennt man ein Shape um, dann werden lokaler und interner Name identisch.
Wenn du eine Liste der Shapes(Bilder) in der Reihenfolge erstellen möchtest, wie sie im Blatt angeordnet sind (nach Zeilen/Spalten). Dann muss man die Zeilen/Spalten-Info zur liken-oberen Zelle, in der das Shape plaziert ist, mit erfassen und die Liste dann danach sortieren.
Nachfolgend dein Makro so erweitert, dass die Liste in dieser Form erstellt wird.
Gruß
Franz
Sub ShapeNamen()
Dim Zeile As Long
Dim myDocument As Worksheet
Dim varItem As Variant
Set myDocument = ActiveSheet 'zum Testen so gesetzt
Zeile = 0
For Each varItem In myDocument.Shapes
With varItem
If .Type = msoPicture Then
'Zeile|Spalte Name des Shapes in Tabelle eintragen
Range("BX2").Offset(Zeile, 0).Value = Format(.TopLeftCell.Row, "00000") & "|" _
& Format(.TopLeftCell.Column, "00000") & varItem.Name
Zeile = Zeile + 1
End If
End With
Next varItem
With Range(Range("BX2"), Range("BX2").Offset(Zeile - 1, 0))
'Einträge aufsteigend sortieren
.Sort key1:=.Range("A1"), order1:=xlAscending, Header:=xlNo
'Zeile|Spalte aus den Einträgen wieder entfernen
For Each varItem In .Cells
varItem.Value = Mid(varItem.Text, 12)
Next
End With
End Sub

Anzeige
AW: Bild identifizieren
10.07.2016 11:17:36
Rosenfeld
Hi Franz,
Dein Code funktioniert so, wie ich es mir vorgestellt habe. Danke.
Jetzt bleibt mir das Vergnügen, die Vorgehensweise zu verstehen.
Gruß
Siegfried

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige