Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Picture name rausfinden

Forumthread: Picture name rausfinden

Picture name rausfinden
07.04.2017 08:46:59
jens
Hallo,
ich kopiere per Vba eine Zelle als Bild und füge diese wieder woanders ein.
Range("A4").Select
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Range("B4").Select
ActiveSheet.Paste
ActiveSheet.Shapes.Range(Array("Picture 4")).Select
Wie schaffe ich es aber nun, dass das makro wieder anwende und dann wird wieder ein Bild erzeugt aber der name des Bildes ist nun anders. Woher weis ich welchen Namen das neue Bild haben wird sodass ich es wie das Picture 4 auswählen kann.
Das Problem ist, dass das hier statisch ist. ich brauche es dynamisch.
Die Zeilen der Spalten A und B laufen später und dann ergeben sich immer wieder andere bildernamen, die ich aber vorher in meinen Code nicht weis.
Hat jemand eine Idee?
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Picture name rausfinden
07.04.2017 11:18:27
Michael
Hallo!
Schau Dir das mal an...
Sub a()
Dim Ws As Worksheet: Set Ws = ThisWorkbook.ActiveSheet
With Ws
.Range("A4").CopyPicture xlScreen, xlPicture
.Paste
.Shapes(.Shapes.Count).Name = "DeinBildName"
End With
End Sub
Kommst Du damit zurecht?
LG
Michael
Anzeige
AW: Picture name rausfinden
07.04.2017 11:20:59
jens
Super genau das war es!
Wie bekomme ich es jetzt noch hin, dass die Grafik in der Zelle B4 eingefügt wird?
AW: Picture name rausfinden
07.04.2017 11:20:59
jens
Super genau das war es!
Wie bekomme ich es jetzt noch hin, dass die Grafik in der Zelle B4 eingefügt wird?
AW: Picture name rausfinden
07.04.2017 11:30:12
Michael
Hallo!
Sub a()
Dim Ws As Worksheet: Set Ws = ThisWorkbook.ActiveSheet
With Ws
.Range("A4").CopyPicture xlScreen, xlPicture
.Paste
With .Shapes(.Shapes.Count)
.Name = "DeinBildName"
.Left = Ws.Range("B4").Left
.Top = Ws.Range("B4").Top
End With
End With
End Sub
Klar?
LG
Michael
Anzeige
AW: Picture name rausfinden
07.04.2017 11:46:00
jens
super jetzt geht es.
Habe zwischenzeitlich noch versucht das Bild dann wieder zu löschen (Liegt in einem moduL)
z = ActiveCell.Row
a = Cells(z, 36).Value
ActiveSheet.Shapes.Range(Array(a)).Select
Selection.Delete
In celle z,36 steht dann der Name des Bildes.
Aber ich bekommen dann den Fehler "Anwendungs oder objektdefinierter Fehler"
Es wird die Zeile
ActiveSheet.Shapes.Range(Array(a)).Select
gelb einfärbt.. was ist hier falsch?
Anzeige
AW: Picture name rausfinden
07.04.2017 12:30:23
Rudi
Hallo,
ActiveSheet.Shapes(a).Delete
Gruß
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Picture Name Rausfinden in Excel


Schritt-für-Schritt-Anleitung

Um den Namen eines Bildes in Excel dynamisch zu ermitteln, kannst du den folgenden VBA-Code verwenden. Dieser Code kopiert eine Zelle als Bild und fügt sie in eine andere Zelle ein, wobei du den Namen des Bildes festlegen kannst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul ein (Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub BildEinfügen()
    Dim Ws As Worksheet: Set Ws = ThisWorkbook.ActiveSheet
    With Ws
        .Range("A4").CopyPicture xlScreen, xlPicture
        .Paste
        With .Shapes(.Shapes.Count)
            .Name = "DeinBildName"
            .Left = .Range("B4").Left
            .Top = .Range("B4").Top
        End With
    End With
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu deinem Arbeitsblatt.
  2. Führe das Makro aus (ALT + F8 und wähle BildEinfügen).

Mit diesem Code wird das Bild in Zelle B4 eingefügt und erhält den Namen "DeinBildName". Du kannst den Namen anpassen, um ihn dynamisch zu gestalten.


Häufige Fehler und Lösungen

  • Fehler: Anwendungs- oder objektdefinierter Fehler
    • Wenn du versuchst, ein Bild zu löschen, und den Fehler erhältst, stelle sicher, dass der Name des Bildes korrekt ist. Du kannst den folgenden Code verwenden, um ein Bild zu löschen:
Sub BildLöschen()
    Dim z As Long
    z = ActiveCell.Row
    Dim a As String
    a = Cells(z, 36).Value
    ActiveSheet.Shapes(a).Delete
End Sub
  • Problem: Statische Bildnamen
    • Wenn der Name des Bildes nicht bekannt ist, kannst du die letzte Form auf dem Arbeitsblatt ansprechen, indem du .Shapes(.Shapes.Count) verwendest, um den letzten eingefügten Bildnamen zu ermitteln.

Alternative Methoden

Eine alternative Methode, um das Bild zu benennen, ist das direkte Zuweisen eines Namens während des Einfügens:

Sub BildEinfügenMitName()
    Dim Ws As Worksheet: Set Ws = ThisWorkbook.ActiveSheet
    With Ws
        .Range("A4").CopyPicture xlScreen, xlPicture
        .Paste
        .Shapes(.Shapes.Count).Name = "NeuerBildName"
    End With
End Sub

Diese Methode ist nützlich, wenn du einen spezifischen Namen für dein Bild benötigst und den Namen nicht dynamisch ermitteln willst.


Praktische Beispiele

  1. Bild in Zelle einfügen und benennen Du kannst das Bild wie im Beispiel oben einfügen und den Namen direkt im Code anpassen.

  2. Dynamische Benennung Wenn du die Namen der Bilder standardisieren möchtest, könntest du eine Schleife verwenden, um durch mehrere Zellen zu iterieren und die Bilder entsprechend zu benennen.


Tipps für Profis

  • Nutze die activesheet.shapes.range(array( picture 1 )).select Methode, um gezielt Bilder auszuwählen.
  • Experimentiere mit den Eigenschaften der Shapes, um die Position und Größe des Bildes präzise anzupassen.
  • Halte deinen Code modular, damit du ihn leichter anpassen kannst, wenn sich Anforderungen ändern.

FAQ: Häufige Fragen

1. Woher kommt der Name des Bildes in Excel? Der Name des Bildes wird automatisch zugewiesen, wenn du ein Bild einfügst. Du kannst ihn jedoch manuell ändern oder dynamisch zuweisen.

2. Kann ich Bilder mit VBA in einer Schleife einfügen? Ja, du kannst eine Schleife verwenden, um mehrere Bilder nacheinander einzufügen und zu benennen, indem du die entsprechenden Zelladressen angibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige