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

Grafik => Zellposition unabhängig

Forumthread: Grafik => Zellposition unabhängig

Grafik => Zellposition unabhängig
20.06.2013 12:28:20
Albert
Mahlzeit zusammen,
ich such bereits den zweiten Tag in Folge eine Möglichkeit, dass man den Status eines Bild von "Nur Zellposition abhängig" auf "Von Zellposition und -größe unabhängig" umstellen kann.
Nachfolgenden Code hab ich zum Testen verwendet... Leider ohne Erfolg!
Sub test()
If hochformat = True Then
If TypeName(Selection) = "Picture" Or TypeName(Selection) = "Grafik" Then 'nur  _
wenn Grafik markiert ist :
With Selection.ShapeRange
.LockAspectRatio = True
'Breite und Höhe der Grafik bitte in Klammer hier anpassen :
.Top = rngLocation.Top
.Left = rngLocation.Left + 30
.Height = Application.CentimetersToPoints(9)
.Width = Application.CentimetersToPoints(7.25)
.Placement = xlMove
End With
End If
End Sub
Dank und Gruß
A.

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grafik => Zellposition unabhängig
20.06.2013 13:31:12
fcs
Hallo Albert,
probier es mal wie folgt.
      If hochformat = True Then
If TypeName(Selection) = "Picture" Or TypeName(Selection) = "Grafik" Then 'nur _
wenn Grafik markiert ist :
With Selection
With .ShapeRange
.LockAspectRatio = True
'Breite und Höhe der Grafik bitte in Klammer hier anpassen :
.Top = rngLocation.Top
.Left = rngLocation.Left + 30
.Height = Application.CentimetersToPoints(9)
.Width = Application.CentimetersToPoints(7.25)
End With
.Placement = xlMove
End With
End If
End If
Gru0
Franz

Anzeige
Mit dieser irregulären Referenzierung ...
20.06.2013 14:05:33
Luc:-?
…dürfte es unter Xl12 für genau ein bzw das erste selektierte(s) Bild nur mit With [ActiveWindow.]Selection.ShapeRange(1) funktionieren (in [] optional). Außerdem lautet das zu verwendende Placement = xlFreeFloating !
Gruß Luc :-?

Herzlichen Dank euch beiden!!! owT....
20.06.2013 15:34:34
Albert
owT

Anzeige
Bitte sehr! Gruß owT
20.06.2013 18:26:20
Luc:-?
:-?
;
Anzeige

Infobox / Tutorial

Grafikposition in Excel unabhängig von Zellposition und -größe gestalten


Schritt-für-Schritt-Anleitung

Um die Zellposition einer Grafik in Excel unabhängig von der Zellgröße zu gestalten, kannst Du den folgenden VBA-Code verwenden. Dieser Code stellt sicher, dass die Grafik nicht nur von der Zellposition, sondern auch von der Zellgröße unabhängig ist.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul aus.
  3. Füge den folgenden Code in das Modul-Fenster ein:
Sub test()
    If hochformat = True Then
        If TypeName(Selection) = "Picture" Or TypeName(Selection) = "Grafik" Then
            With Selection.ShapeRange
                .LockAspectRatio = True
                .Top = rngLocation.Top
                .Left = rngLocation.Left + 30
                .Height = Application.CentimetersToPoints(9)
                .Width = Application.CentimetersToPoints(7.25)
                .Placement = xlMove
            End With
        End If
    End If
End Sub
  1. Stelle sicher, dass rngLocation vorher definiert wurde. Es sollte ein Range-Objekt sein, welches die Position angibt.
  2. Führe den Code aus, während die gewünschte Grafik ausgewählt ist.

Häufige Fehler und Lösungen

  • Fehler: Grafik wird nicht verschoben.

    • Lösung: Überprüfe, ob rngLocation korrekt definiert ist. Wenn diese Variable leer ist oder nicht auf einen gültigen Bereich verweist, wird die Grafik nicht verschoben.
  • Fehler: Der Code funktioniert nicht für mehr als eine Grafik.

    • Lösung: Der aktuelle Code ist so strukturiert, dass er nur für die ausgewählte Grafik funktioniert. Um mehrere Grafiken zu bearbeiten, musst Du eine Schleife implementieren.
For Each shp In Selection.ShapeRange
    With shp
        .Top = rngLocation.Top
        .Left = rngLocation.Left + 30
        .Height = Application.CentimetersToPoints(9)
        .Width = Application.CentimetersToPoints(7.25)
        .Placement = xlMove
    End With
Next shp

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du die Grafik manuell anpassen:

  1. Klicke mit der rechten Maustaste auf die Grafik.
  2. Wähle Größe und Eigenschaften.
  3. Im Tab Eigenschaften kannst Du die Option Von Zellposition und -größe unabhängig auswählen.

Diese Methode ist einfacher, aber weniger flexibel, insbesondere bei vielen Grafiken.


Praktische Beispiele

  • Beispiel 1: Eine Grafik soll immer in der Mitte des Arbeitsblatts bleiben, unabhängig von der Zellgröße. Verwende den oben genannten VBA-Code und passe rngLocation entsprechend an.

  • Beispiel 2: Du möchtest eine Grafik in einer bestimmten Größe, unabhängig von der Größe der Zellen, in die sie eingefügt wird. Nutze die .Height und .Width Eigenschaften im VBA-Code, um dies zu erreichen.


Tipps für Profis

  • Nutze das With-Statement effizient, um den Code übersichtlicher zu gestalten.
  • Experimentiere mit den Werten für .Top und .Left, um die optimale Position für Deine Grafiken zu finden.
  • Verwende die xlFreeFloating-Option, wenn Du sicherstellen möchtest, dass die Grafik niemals mit Zellen verbunden ist.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Grafik immer sichtbar bleibt?
Stelle die Grafik in einen Bereich, der nicht von anderen Zellen überdeckt wird. Nutze die .Top und .Left Eigenschaften, um die Position zu optimieren.

2. Kann ich den Code für mehrere Grafiken gleichzeitig verwenden?
Ja, indem Du eine Schleife über die ShapeRange implementierst, kannst Du mehrere Grafiken auf einmal anpassen.

3. Funktioniert dieser Code in Excel 2016?
Ja, der bereitgestellte VBA-Code ist mit Excel-Versionen ab Excel 2007 bis hin zu Excel 365 kompatibel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige