gibt es eine Möglichkeit über VBA die Position eines Bildes zu ermitteln um so den Druckbereich festzulegen?
Vielebn Dank schon mal
Gruß
Frank

Set MeinBild = ActiveSheet.Shapes("Picture 1")
Position1 = MeinBild.TopLeftCell.Address
Position2 = MeinBild.BottomRightCell.Address
Um die Position eines Bildes in Excel über VBA zu ermitteln, kannst du die folgenden Schritte befolgen:
Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Füge ein neues Modul hinzu: Rechtsklicke auf VBAProject (DeineDatei.xlsx), wähle Einfügen und dann Modul.
Füge den Code ein: Kopiere den folgenden VBA-Code in das Modul:
Sub BildPositionErmitteln()
Dim MeinBild As Shape
Set MeinBild = ActiveSheet.Shapes("Picture 1") ' Ersetze "Picture 1" mit dem Namen deines Bildes
MsgBox "Top: " & MeinBild.Top & vbLf & "Left: " & MeinBild.Left
End Sub
Führe das Makro aus: Drücke F5, um das Makro auszuführen, und die Position des Bildes wird in einer MessageBox angezeigt.
Fehler: "Shape nicht gefunden"
Lösung: Stelle sicher, dass der Name des Bildes korrekt ist. Du kannst den Namen in der Excel-Oberfläche überprüfen, indem du das Bild auswählst und den Namen in der Formelleiste anschaust.
Fehler: MsgBox zeigt keine Werte an
Lösung: Überprüfe, ob du das richtige Bild ausgewählt hast und dass es sich auf dem aktiven Arbeitsblatt befindet.
Falls du keine VBA-Lösungen verwenden möchtest, kannst du die Position eines Bildes auch manuell ermitteln:
Beispiel 1: Wenn du die Position eines Logos in deinem Bericht ermitteln möchtest, kannst du den oben genannten VBA-Code anpassen und den Namen deines Logos verwenden.
Beispiel 2: Um die Top und Left Eigenschaften mehrerer Bilder in einem Arbeitsblatt zu ermitteln, kannst du eine Schleife verwenden:
Sub AlleBildPositionenErmitteln()
Dim Bild As Shape
For Each Bild In ActiveSheet.Shapes
MsgBox Bild.Name & ": Top = " & Bild.Top & ", Left = " & Bild.Left
Next Bild
End Sub
Nutze die TopLeftCell und BottomRightCell Eigenschaften, um die genaue Zellposition eines Bildes zu ermitteln:
Set MeinBild = ActiveSheet.Shapes("Picture 1")
MsgBox "Obere linke Zelle: " & MeinBild.TopLeftCell.Address & vbLf & "Untere rechte Zelle: " & MeinBild.BottomRightCell.Address
Wenn du die shape position vba in einem größeren Projekt verwendest, denke daran, die Bildnamen konsistent zu benennen, um Verwirrung zu vermeiden.
1. Wie kann ich die Position eines Bildes in einem bestimmten Arbeitsblatt ermitteln?
Du kannst das Arbeitsblatt in deinem VBA-Code angeben, indem du Worksheets("DeinBlattname") vor Shapes("Bildname") hinzufügst.
2. Was mache ich, wenn ich mehrere Bilder gleichzeitig bearbeiten möchte?
Verwende eine Schleife im VBA-Code, um durch alle Bilder im Arbeitsblatt zu iterieren und ihre Positionen zu ermitteln.