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