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

Forumthread: Grafiken positionieren

Grafiken positionieren
Ralf
Hallo Forum,
gibt es eigentlich im Excel 2007 die Möglichkeit (wie z. B. bei Word oder Powerpoint auch) Grafiken genau mit absoluten Werten zu positionieren?
Viele Grüße
Ralf
Anzeige

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

Betreff
Benutzer
Anzeige
Grafiken per VBA in Punkte/Zoll/cm positionieren
02.02.2011 15:19:00
NoNet
Hallo Ralf,
direkt in den Grafik-Eigenschaften findet sich dazu keine Option, aber per VBA könnte es funktionieren :
Die Position eines Bildes (vom Tabellenblattrand an gemessen) wird in Punkten angegeben.
Dabei kann man die vertikale Postion (also : Abstand vom oberen Rand) folgendermassen ermitteln bzw. festlegen :
MsgBox ActiveSheet.Pictures(1).Top 'Anzeigen
ActiveSheet.Pictures(1).Top = 100 '100 Punkte 
Mit folgenden Anweisungen entsprechend den Abstand vom linken Rand :
MsgBox ActiveSheet.Pictures(1).Left 'Anzeigen
ActiveSheet.Pictures(1).Left = 100 '100 Punkte 
Um nun den Abstand in cm (bzw. zunächst in Inch, also ZOLL) zu ermitteln, bietet Excel VBA 2 Umrechnungsfunktionen :
Mit der Funktion Application.InchesToPoints(1) kannst Du anzeigen, wieviele (Bildschirm-)Punkte 1 Zoll entsprechen : Bei einer Bildschirmauflösung von 72 dpi (Punkte pro Zoll) wären das also exakt 72 (Punkte). Moderne Bildschirme arbeiten jedoch bereits mit 96 dpi !!
Mit der Funktion Application.CentimetersToPoints(1) kannst Du anzeigen, wieviele (Bildschirm-)Punkte 1 cm entsprechen, das müsste ungefähr das ein "2,54"tel des InchesToPoints-Wertes ergeben, also z.B. 72/2,54=28,34 oder 96/2,54=37,79 !!
Mit diesen Kenntnissen kann man durch Umformung die Bildpositionen in Punkten, Zoll und cm ermitteln und auch gezielt setzen. Hier ein paar kleine Beispiele :
Sub BildPositionen()
'02.02.2011, NoNet - www.excelei.de
'Abstand (in Punkten gemessen) vom oberen Rand anzeigen :
MsgBox ActiveSheet.Pictures(1).Top
'Abstand (in Punkten gemessen) vom oberen Rand setzen :
ActiveSheet.Pictures(1).Top = 50 '50 Punkte Abstand vom oberen Rand
'Abstand (in Punkten gemessen) vom linken Rand anzeigen :
MsgBox ActiveSheet.Pictures(1).Left
'Abstand (in Punkten gemessen) vom linken Rand setzen :
ActiveSheet.Pictures(1).Left = 100 '100 Punkte Abstand vom linken Rand
'################ Abstände in Inches (1 ZOLL = 2,54 cm) #############################
'Abstand (in ZOLL gemessen) vom oberen Rand anzeigen :
MsgBox ActiveSheet.Pictures(1).Top / Application.InchesToPoints(1)
'Abstand (in ZOLL gemessen) vom oberen Rand setzen :
ActiveSheet.Pictures(1).Top = Application.InchesToPoints(2) '2 Zoll Abstand vom oberen Rand
'################ Abstände in cm #############################
'Abstand (in cm gemessen) vom oberen Rand anzeigen :
MsgBox ActiveSheet.Pictures(1).Top / Application.CentimetersToPoints(1)
'Abstand (in ZOLL gemessen) vom oberen Rand setzen :
ActiveSheet.Pictures(1).Top = Application.CentimetersToPoints(3) '3 cm Abstand vom oberen  _
Rand
End Sub
Ob die Bildposition im Papier-Ausdruck ebenfalls stimmt habe ich nicht getestet, das hängt sicherlich auch vom verwendeten Blattrand, dem Druckermodell- und dem Druckertreiber ab !!
Gruß, NoNet
Anzeige
AW: Grafiken per VBA in Punkte/Zoll/cm positionieren
03.02.2011 08:21:10
Ralf
Hallo NoNet,
danke für Deine Antwort.
Wo muss ich denn die beiden MSGBox Makros hinkopieren? Und wie starte ich diese?
Ist mir nicht ganz klar, wieso MS sowas in Word und Powerpoint einbaut, in Excel aber nicht.
Viele Grüße
Ralf
;
Anzeige
Anzeige

Infobox / Tutorial

Grafiken in Excel präzise positionieren


Schritt-für-Schritt-Anleitung

Um Grafiken in Excel 2007 präzise zu positionieren, kannst du VBA (Visual Basic for Applications) nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11. Damit öffnest du den VBA-Editor.

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen und wähle Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub BildPositionen()
        ' Abstand (in Punkten gemessen) vom oberen Rand anzeigen:
        MsgBox ActiveSheet.Pictures(1).Top
        ' Abstand (in Punkten gemessen) vom oberen Rand setzen:
        ActiveSheet.Pictures(1).Top = 50 '50 Punkte Abstand vom oberen Rand
        ' Abstand (in Punkten gemessen) vom linken Rand anzeigen:
        MsgBox ActiveSheet.Pictures(1).Left
        ' Abstand (in Punkten gemessen) vom linken Rand setzen:
        ActiveSheet.Pictures(1).Left = 100 '100 Punkte Abstand vom linken Rand
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle BildPositionen und klicke auf Ausführen.

Jetzt kannst du die Position deiner Bilder in Punkten einstellen. Um die Position in Zentimetern oder Zoll anzuzeigen, kannst du die Umrechnungsfunktionen nutzen.


Häufige Fehler und Lösungen

  • Fehler: "Keine Bilder gefunden"

    • Lösung: Stelle sicher, dass sich mindestens ein Bild auf dem Arbeitsblatt befindet.
  • Fehler: Die Position ändert sich nicht

    • Lösung: Überprüfe, ob das richtige Bild ausgewählt ist. Standardmäßig wird das erste Bild in der Liste angesprochen.
  • Fehler: VBA wird nicht ausgeführt

    • Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Einstellungen für Makros und aktiviere die Makros.

Alternative Methoden

Wenn du die VBA-Methode nicht verwenden möchtest, kannst du auch die folgenden Alternativen ausprobieren:

  1. Grafik manuell positionieren:

    • Klicke auf das Bild und ziehe es an die gewünschte Position. Halte die ALT-Taste gedrückt, um das Bild am Raster auszurichten.
  2. Verwenden der Größen- und Positionierungsoptionen:

    • Rechtsklicke auf das Bild, wähle Größe und Position und gib die gewünschten Werte für die Position in den Feldern Horizontal und Vertikal ein.

Praktische Beispiele

Hier sind einige Beispiele, wie du die Bildposition in verschiedenen Einheiten einstellen kannst:

  • Bild in 3 cm vom oberen Rand positionieren:

    ActiveSheet.Pictures(1).Top = Application.CentimetersToPoints(3)
  • Bild in 2 Zoll vom linken Rand positionieren:

    ActiveSheet.Pictures(1).Left = Application.InchesToPoints(2)

Diese Beispiele zeigen dir, wie du mit VBA Bilder effizient positionieren kannst, ähnlich wie es in Word oder PowerPoint der Fall ist.


Tipps für Profis

  • Verwende Variablen: Um den Code übersichtlicher zu gestalten, kannst du Variablen für die Abstände definieren.

    Dim topMargin As Single
    Dim leftMargin As Single
    topMargin = Application.CentimetersToPoints(3)
    leftMargin = Application.InchesToPoints(2)
    ActiveSheet.Pictures(1).Top = topMargin
    ActiveSheet.Pictures(1).Left = leftMargin
  • Automatisierung: Du kannst Makros erstellen, die automatisch alle Bilder auf einem Blatt anpassen, indem du eine Schleife verwendest.


FAQ: Häufige Fragen

1. Wie kann ich die Bildposition in Excel speichern?
Die Position wird automatisch gespeichert, wenn du die Excel-Datei speicherst. Es ist jedoch ratsam, die Datei als .xlsm (Makro-fähig) zu speichern, um die VBA-Funktionalität zu erhalten.

2. Kann ich die Position auch in Word zentimeter anzeigen lassen?
Ja, in Word kannst du die Position von Bildern ähnlich einstellen. Nutze die Funktion Position im Kontextmenü oder die Layout-Optionen der Grafik.

3. Was muss ich tun, wenn ich kein Bild einfügen kann?
Überprüfe die Berechtigungen deiner Excel-Datei. Wenn sie schreibgeschützt ist, kannst du keine Änderungen vornehmen.

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