Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
364to368
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
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Position Diagramm bestimmen

Position Diagramm bestimmen
21.01.2004 07:06:42
Christoph Dümmen
Hallo,
ich möchte für ein Diagramm bei der Erstellung die linke Position bestimmen.

Function StartPosLeft(r as Range) as Long
dim i%
do while r.offset(0,i)<>=""
startposleft = startposleft + r.offset(0,i).columnwhidth
i=i+1
loop
End Function

jetzt gibt die ColumnWidth aber die Breite nicht in Pixeln an und
ActiveWindow.PointsToScreenPixelsX liefert einen höheren Wert als nötig.
Hat jemand einen Vorschlag?
Christoph

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Position Diagramm bestimmen
23.01.2004 22:22:56
DieterB
Hallo Christoph,
hier mal ein Excel97-Beispiel, sollte aber funzen.
Set Dia = ActiveSheet.ChartObjects.Add _
(5, 165, 710, 1500)
linker Rand, oberer Rand, Breite und Höhe.
Gruß
DieterB
AW: Position Diagramm bestimmen
26.01.2004 07:10:38
Christoph Dümmen
Hallo DieterB & Co.,
>ActiveSheet.ChartObjects.Add
ist soweit klar. Jetzt ist nur die Frage, wie Du das Diagramm genau positionierst bzw. wie Du LEFT, TOP ermittelst. Je nach ZOOM kommt nämlich etwas anderes heraus.
Daher ist meine Funktion unvollständig bzw. bringt nicht den gewünschten Wert.

Function StartPosLeft(r as Range) as Long
dim i%
do while r.offset(0,i)<>=""
startposleft = startposleft + r.offset(0,i).columnwhidth
i=i+1
loop
End Function


Dies berechnet zwar die Pixelanzahl, welche aber woanders ist - wie gesagt, abhängig vom Zoomfaktor.
Viele Grüße
Christoph
Anzeige
AW: Position Diagramm bestimmen
26.01.2004 08:30:53
DieterB
Hallo Christoph,
in diesem Falle würde ich die Bildschirmauflösung mit einer Case-Anweisung
abfangen.
Private Declare

Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Sub Set_Zoom()
Dim h As Long
Dim i As Long
h = GetSystemMetrics(0)
u = user32
'Die Werte hinter .Zoom den eigenen Bedürfnissen anpassen
Select Case h 'ScreenResolution(0)
'Bildschirmauflösung
'1600*1200
Case 1600
ActiveWindow.Zoom = 195
Position = (5, 165, 710, 1500)
End Select
So könnte es aussehen.
gruß
DieterB
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige