Registriert seit: 19.01.2020
Version(en): 2007
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!
Registriert seit: 26.09.2022
Version(en): 2019
Moin,
nur wenn du die Zeilen, über denen das Diagramm liegt, fixierst.
Viele Grüße
derHöpp
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 10.01.2023
Version(en): Microsoft Office 2016
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
... da fehlt aber der Teil, dass das automatisch beim Scrollen passiert
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.01.2023
Version(en): Microsoft Office 2016
25.02.2023, 10:38
Hallo Andre,
da hast du recht.
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
FixDiagramm
End Sub
Registriert seit: 26.09.2022
Version(en): 2019
Moin,
das SelectionChange-Event hat nix mit dem Scrollen zu tun.
Viele Grüße
derHöpp
Registriert seit: 10.01.2023
Version(en): Microsoft Office 2016
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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.
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
25.02.2023, 11:23
(Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2023, 11:26 von RPP63.)
@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)