Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Postion Commandbutton fixieren

Postion Commandbutton fixieren
30.03.2020 12:07:46
Michael
Hallo,
ich erzeuge via makro auf einem Diagramm einige CommandButtons, mit denen weitere Funktionen gestartet werden sollen.
Funktioniert soweit auch ganz gut. Jetzt ist mir aufgefallen, das je nach Skalierung des Blattes die Buttons nicht an den richtigen Positionen auftauchen. Gerne auch mal neben dem Blatt.
Ich hätte Buttons gerne immer an einer exakt definierten Stelle auf meinem Diagramm, egal wie es scaliert ist.
Vermutlich gibt es da Unterschiede in den Positionsangaben, ob bezogen auf das Blatt oder auf Monitorposition oder ähnlich.
Danke
Hier mal mein Code:

Sub Diagramm_Command_buttons()
ActiveSheet.Buttons.Add(635, 40, 35, 15).Select
Selection.Name = "R1_aus"
Selection.OnAction = "Charts_blende_1_aus"
ActiveSheet.Shapes("R1_aus").Select
Selection.Characters.Text = "R1_aus"
ActiveSheet.Buttons.Add(600, 40, 35, 15).Select
Selection.Name = "R1_an"
Selection.OnAction = "Charts_blende_1_an"
ActiveSheet.Shapes("R1_an").Select
Selection.Characters.Text = "R1_an"
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Postion Commandbutton fixieren
30.03.2020 12:28:23
Dieter(Drummer)
Guten Tag Michael,
evtl. kann Du damit etwas anfangen, damit wird der Button z.B. an Zelle B3 fixiert.
Gruß, Dieter(Drummer)
'Herber: von Klaus M.vdT. am 10.04.2013 09:11:03

Private Sub CommandButton1_Click()
Dim rng As Range
Set rng = ActiveSheet.Range("B3")
With ActiveSheet.OLEObjects("CommandButton1")
.Top = rng.Top
.Left = rng.Left
.Width = rng.Width
.Height = rng.RowHeight
End With
End Sub

AW: Postion Commandbutton fixieren
30.03.2020 12:56:19
Michael
Hi,
danke, den Ansatz verstehe ich.
Aber ich hab den Button auf einem Diagramm liegen, da kann ich keine Zellenpositionen angeben.
Ich such mal etwas weiter.
Micha
Anzeige
AW: Postion Commandbutton fixieren
30.03.2020 13:10:29
Nepumuk
Hallo Michael,
ist das ein eigenständiges Diagrammblatt oder ein Diagramm in einem Tabellenblatt?
Gruß
Nepumuk
AW: Postion Commandbutton fixieren
30.03.2020 13:13:30
Michael
Hi, ein eigenständiges Diagrammblatt.
Stimmt, das is wichtig zu wissen :-)
Micha
AW: Postion Commandbutton fixieren
30.03.2020 13:48:20
Nepumuk
Hallo Michael,
in das Modul des Diagramms:
Option Explicit

Private Sub Chart_Activate()
    With Shapes("R1_aus")
        .Left = 635
        .Top = 40
    End With
    With Shapes("R1_an")
        .Left = 600
        .Top = 40
    End With
End Sub

Die Positionen musst du eventuell anpassen. Damit wird die Position der Buttons bei jedem aktivieren des Charts neu festgelegt.
Gruß
Nepumuk
Anzeige
AW: Postion Commandbutton fixieren
30.03.2020 14:50:24
Michael
Hi, Danke für deinen Tip, aber nach wie vor ist die Position der Buttons irgendwie abhängig vom monitor und nicht auf einen fixen Punkt im Diagramm bezogen. d.h. bei verschiedenen Darstellungsgrößen des Diagramms (verschiedene Monitorauflösungen oder Zoomeinstellungen) tauchen die Buttons woanders auf.
Hab den Button R1_aus von deinem Beispiel mal mit 400 versehen, zur Demonstration.
Irgendwie muss ich mich wohl auf die Diagrammfläche beziehen.
Anbei mal ein Screenshot.
Userbild
Anzeige
AW: Postion Commandbutton fixieren
30.03.2020 16:26:40
Michael
Es gibt wohl unterschiede in der Positionierung von Shapes und Commandbuttons.
Wenn ich einfach ein Shape erstelle und es mit einem Makro verknüpfe, klappts. Dann bleibt das shape an der Stelle im Diagramm, wo ich es hinhabenmöchte.
Dann mach ich es so, danke für Eure tips, ich hab sie mir ins Notizbuch geschrieben, kann man immer gebrauchen.
Hier nochmal mein code, der macht was er soll.
Set buttoncontrol = ActiveChart.Shapes.AddShape(msoShapeRectangle, 650, 40, 45, 20)
With buttoncontrol
.Name = "R1_aus"
.OnAction = "Charts_blende_1_aus"
.TextFrame.Characters.Text = "R1 aus"
End With
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige