Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
792to796
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
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Rechte obere kante eines Diagramms ermitteln

Rechte obere kante eines Diagramms ermitteln
22.08.2006 08:31:44
Darren
Hi,
letzte Woche hatte Lars mir das geschrieben:
"mit Left + Width bekommst du die rechte Position, mit Top die obere Position."
Ich habe es dann versucht mit diesem Befehl:
ActiveSheet.ChartObjects("Diagramm 4").Width
Leider geht das nciht.
Kann jemand helfen?
Ziel:
Nach klicken des Buttons soll er zur rechten oberen Kante des Diagramms springen, damit ich alle DAten sichtbar von rechts nach links schauen kann. Da sehr viele Daten auf ein Blatt sind und weitere 3 Diagramme, sollen 3 Buttons angelegt werden damit ich sofort auf die Diagramme springen kann und meine Daten dort ablesen.
Vielleicht gibt es eine andere Lösung?!
Grüße
DArren

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

Betreff
Datum
Anwender
Anzeige
AW: Rechte obere kante eines Diagramms ermitteln
22.08.2006 09:06:50
ingUR
Hallo, Darren,
eigentlich sollten die Methode zum Setzten der rechten oberen Ecke funktionieren, wenn das "Diagrammm 4" existiert, allerdings stehet width für die horizontale Ausdehnung der Diagrammffläche:

sub DiagrammPos()
'Setzen
with activesheet.chartsobjects("Diagramm 4")
.left=[B2].Left
.top=[B2].Top
end with
'Ermittlung
with activesheet.chartsobjects("Diagramm 4")
Links = .left
Rechts = .top
Weite = .width
Hoehe = .height
end with
end sub

Wenn du die Diagramme per VBA-Code anlegst, ist es möglich beim dem betreffenden Chartobject einen Namen zu geben, so dass dieser statt "Diagramm 4" eingesetzt werden kann:

with ActiveSheet
.ChartObjects.Add([E11].Left, .[E11].Top, 440, 330).Name = "ChartTestDaten"
end with

Gruß,
Uwe
Anzeige
AW: Rechte obere kante eines Diagramms ermitteln
22.08.2006 09:45:40
Darren
Hi Uwe,
das hat leider nciht funktioniert.
Er bleibt hier stecken: with activesheet.chartsobjects("Diagramm 4")
Grüße
Darren
AW: Rechte obere kante eines Diagramms ermitteln
22.08.2006 10:35:44
ingUR
Hallo, Darren,
mea culpa!
Bessere bitte aus:
With ActiveSheet.ChartObjects("Diagramm 4")
Gruß,
Uwe
AW: Rechte obere kante eines Diagramms ermitteln
22.08.2006 11:15:27
Darren
Hi Uwe,
ja, jetzt hat es geklappt!
Weißt Du jetzt ncoh wie ich diese Information nutzen kann um an das Ende der oberen rechte Kante des Diagramms zu scrollen?
Ich habe das versucht, aber ohne erfolg:
ActiveWindow.SmallScroll ToRight:= Weite
Grüße
Darren
AW: Rechte obere kante eines Diagramms ermitteln
22.08.2006 16:10:24
ingUR
Hallo, Darren,
wie Du frei eine XY-Position in einer Arbeitsmappe ansteuern kannst, kann ich dir nicht sagen.
Jedoch das der SmallSrcoll-Methode die Verschiebung um Zielen bzw. Spalten bewirkt, erfährt man in der Hilfe. Das bedeutet, dass Du, wenn Du die Ecken Deines Diagrammes an Zellen veranken kannst oder die Zellenweite Konstant bleibt, Du über diese Methode zum Ziel kommen kannst.

Sub DiagrammPos()
Dim XY0 As Range, XY1 As Range, scrollNC As Integer
Set XY0 = Range("B2") 'linke obere Ecke des Diagramms
Set XY1 = Range("U15") 'rechte untere Ecke des Diagramms
With ActiveSheet
With .ChartObjects("Diagramm 1")
.Left = XY0.Left
.Top = XY0.Top
.Width = (XY1.Left + XY1.Width) - .Left
.Height = (XY1.Top + XY1.Height) - .Top 'ggf. nach Diagonalmaßstab bestimmen
End With
scrollNC = XY1.Column - XY0.Column + 1
ActiveWindow.SmallScroll toRight:=srcollNC
End With
End Sub

Dies ist eine Notlösung.
Vielleicht findet sich noch eine "XY-Screen"-Lösung für das Scrollen.
Gruß,
Uwe
Anzeige
AW: Rechte obere kante eines Diagramms ermitteln
22.08.2006 19:34:00
ingUR
Hallo, Darren,
hier noch eine Version, die die Proportion des Diagrammes nicht verändert und nur die Zellenanbindung in der linken oberen Ecke erfordert:

Sub SprungZumRechtenRand()
Dim X0 As Long, Y0 As Long, X1 As Long, Y1 As Long
Dim C0 As Integer, R0 As Long, C1 As Integer, R1 As Long
Dim shp As Shape
Dim XY0 As Range, XY1 As Range, scrollNC As Integer
Set XY0 = Range("B2") 'linke obere Ecke des Diagramms
With ActiveSheet
With .ChartObjects("Diagramm 1")
.Left = XY0.Left
.Top = XY0.Top
X0 = .Left
Y0 = .Top
X1 = .Left + .Width
Y1 = .Top + .Height
C0 = Range(.TopLeftCell.Address).Column
R0 = Range(.TopLeftCell.Address).Row
End With
'nun wird ein "freundliche grinsender Helfer"
'an den Rechten Rand des Diagramms gesetzt
'(Höhe = Weite =1# :: kann auch 12# oder jede ander Zahl sein
Set shp = ActiveSheet.Shapes.AddShape(msoShapeSmileyFace, X1, Y0, 1#, 1#)
With shp
.Select
'es wird die ZellenAdresse des "Helfers" ermittelt
C1 = Range(.TopLeftCell.Address).Column
R1 = Range(.TopLeftCell.Address).Row
.Delete 'hier wird der Helfer wieder gelöscht
End With
Set shp = Nothing
XY0.Select 'Zelle unter der linken oberen Ecke des Diagramms anwählen
scrollNC = C1 - C0 'Zellenanzahl die nach rechts zu springen sind
ActiveWindow.SmallScroll toRight:=scrollNC
End With
End Sub

Gruß,
Uwe
Anzeige
AW: Rechte obere kante eines Diagramms ermitteln
23.08.2006 08:46:12
Darren
Hi Uwe,
danke, ich probiere es mal aus!
Viele GRüße und vielleicht bis bald :-)
Darren

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige