Diagramm im Bildschirmmitte fixieren / mitscrollen lassen
#1
Hallo,

lässt sich ein Diagramm bspw. in der Bildschirmmitte so fixieren, dass auch beim Scrollen der Tabelle das Diagramm an der gleichen Stelle bleibt?

Evtl. geht das über VBA, was auch ok wäre.

VG!
Antworten Top
#2
Moin,

nur wenn du die Zeilen, über denen das Diagramm liegt, fixierst.

Viele Grüße 
derHöpp
Antworten Top
#3
Hallöchen,

nicht nur, etwas VBA kann auch helfen.

Siehe bei uns z.B. dieser Thread-Textfeldposition-in-Tabsheet-fixieren?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Ja, es ist möglich, ein Diagramm in Excel mithilfe von VBA so zu fixieren, dass es immer dieselbe Stelle auf dem Bildschirm bleibt, auch wenn Sie in der Tabelle scrollen.
Sie können dazu die Eigenschaften "Oben" und "Links" des Diagrammobjekts ändern. Hier ist ein Beispiel-Code, der das Diagramm in der Mitte des Bildschirms positioniert und fixiert:
Code:
Sub FixDiagramm()
    Dim Diagramm As ChartObject
    Set Diagramm = ActiveSheet.ChartObjects("Diagramm1") 'Hier "Diagramm1" durch den Namen Ihres Diagramms ersetzen
   
    With Diagramm
        .Top = Application.Top + (Application.Height - .Height) / 2 'Positioniert das Diagramm in der Bildschirmmitte
        .Left = Application.Left + (Application.Width - .Width) / 2 'Positioniert das Diagramm in der Bildschirmmitte
        .Placement = xlFreeFloating 'Stellt sicher, dass das Diagramm nicht an eine Zelle gebunden ist
    End With
End Sub
Antworten Top
#5
... da fehlt aber der Teil, dass das automatisch beim Scrollen passiert Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Smile 
Hallo Andre,

da hast du recht.

Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    FixDiagramm
End Sub
Antworten Top
#7
Moin,

das SelectionChange-Event hat nix mit dem Scrollen zu tun.

Viele Grüße
derHöpp
Antworten Top
#8
Sie haben recht, das SelectionChange-Event reagiert nur auf Änderungen in der aktiven Zelle, nicht auf das Scrollen in der Tabelle. Mein Fehler.
Um das Scrollen zu erkennen, kann man das Scroll-Event in VBA verwenden.

Diesen Code diesen in das Code-Fenster des entsprechenden Arbeitsblatts einfügen.

Code:
Private Sub Worksheet_Scroll(ByVal Target As Excel.Range)
    Dim Diagramm As ChartObject
    Set Diagramm = ActiveSheet.ChartObjects("Diagramm1") 'Hier "Diagramm1" durch den Namen Ihres Diagramms ersetzen
   
    With Diagramm
        .Top = Application.Top + (Application.Height - .Height) / 2 'Positioniert das Diagramm in der Bildschirmmitte
        .Left = Application.Left + (Application.Width - .Width) / 2 'Positioniert das Diagramm in der Bildschirmmitte
        .Placement = xlFreeFloating 'Stellt sicher, dass das Diagramm nicht an eine Zelle gebunden ist
    End With
End Sub
Antworten Top
#9
Hallöchen,

in dem von mir verlinkten Thread hatten wir das anhand einer Textbox diskutiert.
Hier mal die Lösung von dort als Beispiel auf ein Diagramm angewendet.

Abweichung zur Aufgabe: Das Diagramm wird in der Mitte des sichtbaren Arbeitsblattes dargestellt und nicht in der Mitte des Bildschirmes. Bei der Mitte des Bildschirmes müsste man das Diagramm vom Blatt bzw. der Application trennen und irgendwelche Klimmzüge veranstalten.


.xlsm   Chart - Frame - VisibleRange.xlsm (Größe: 27,88 KB / Downloads: 5)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
@Mario0366 bedient sich Chat-GPT!
Das Siezen sowie der Satzaufbau ist für mich recht eindeutig …
Aber dass dort neue Events erfunden werden …
Private Sub Worksheet_Scroll(ByVal Target As Excel.Range)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste