Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
892to896
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
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Ausrichten "left, top"
08.08.2007 15:23:00
Dennis
Tag zusammen,
mal eine kurze Frage:
Wenn ich ein shape-Objekt(Reckteck) erzeuge wird laut der Hilfe die left und top Angabe benötigt, damit es ausgerichtet wird.
Ich hab ein Diagramm, welches ein eigenes Sheet ist. Wenn ich die Top/left Werte der PlotArea auslese und diese dann zur Erstellung des Rechtecks benutze, dachte ich eigenltich dass das Rechteck in der linken oberen Ecke der PlotArea erscheinen muss.
Das macht es allerdings nicht, sondern ist etwas entfernt davon..
Weiss jemand woran das liegt. Beide Werte werden in 'Punkt' ausgegeben daher müsste das ja eigentlich stimmen.

Public Sub Rechteck ()
L = Sheets(1).PlotArea.Left
T = Sheets(1).PlotArea.Top
ActiveChart.Shapes.AddShape(msoShapeRectangle, L, T, 100, 100).Select
Selection.ShapeRange.Fill.Visible = msoFalse
End Sub


Gruss Dennis

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausrichten "left, top"
08.08.2007 15:37:00
Dan
Hi,
meinst du vielleicht ChartArea?
mfg dan

AW: Ausrichten "left, top"
08.08.2007 15:40:41
Dennis
Nein es soll in der linken oberen Ecke der PlotArea auftauchen....
Mittlerweile hab ich auch noch die Top & Left Koordinaten der ChartArea ermittelt sowie die Position des Bildschirms, aber das Rechteck erscheint einfach nicht genau an der Ecke. Bei der Left-Koordinate fehlen etwa 7 Punkte, bei Top-Koordinate kommt es in etwa hin.

Public Sub test()
wert_L = Application.Left
wert_T = Application.Top
L1 = Sheets(1).ChartArea.Left
L = (Sheets(1).PlotArea.Left)
T1 = Sheets(1).ChartArea.Top
T = (Sheets(1).PlotArea.Top)
Left_1 = L + L1 + Abs(wert_L)
Top_1 = T + T1 + Abs(wert_T)
ActiveChart.Shapes.AddShape(msoShapeRectangle, Left_1, Top_1, 100, 100).Select
Selection.ShapeRange.Fill.Visible = msoFalse
End Sub


Gruss Dennis

Anzeige
AW: Ausrichten "left, top"
08.08.2007 15:49:00
Renee
Mazwara Dennis,
PlotAreas enthalten einen impliziten Rand.
So ginge es:

Public Sub Rechteck()
With Charts("Diagramm1")
Set pa = .PlotArea
With .Shapes.AddShape(msoShapeRectangle, _
pa.InsideLeft, pa.InsideTop, 100, 100)
.Fill.Transparency = 1
.Line.DashStyle = msoLineDashDot
End With
End With
End Sub


Wenn Du Dein Zoom-Tool fertig hast, präsentier es doch hier.
Allerdings würde ich die Ratschläge von Nepumuk nicht so einfach in den Wind schlagen.
Du wirst noch mit ganz anderen Problemen fertig werden müssen.
Greetz Renee

Anzeige
AW: Ausrichten "left, top"
08.08.2007 15:57:52
Dennis
Hi Renee,
also damit funktionierts ganz genau.
Nur ich hab irgendwie gehofft, das ich damit später irgendwie die Mausposition in eine Left/Top Koordinate umwandel kann.
wie du schon richitg vermutest geht es immer noch um das Zoom-Tool. Ich versuche den Zoom-Bereich durch ein Rechteck darzustellen. Und diesen Bereich dann zu zoomen. Prinzipiel funktioniert das auch. Hab eine Variante hinbekommen die hier bei mir auf dem Rechner läuft. Allerdings nur dann wenn keine andere Bildschirmauflösung, der excel-Zoom auf 130% und und und eingestellt ist.
Ist also sehr unflexibel das ganze.
Das ganze Probelm ist eben die MausKoordinaten sind in Pixel, die Left Top Werte in Punkte. dann bezieht sich die Left, Top Koordinate je nach Objekt auf einen anderen Rand. Das macht es alles sehr schwer.
Ich würd ja auf Nepumuk hören, aber hat ja prinzipiel nur gesagt das es mit VBA nicht geht. Da ich aber nur VBA kann. Ist es für mich nur damit möglich :)
Gruss Dennis

Anzeige
AW: Ausrichten "left, top"
08.08.2007 16:02:44
Dennis
Hi Renee,
das mit dem .InsideLeft , insideTop ist super.
Damit kann ich mich mal wieder ein paar Stunden beschäftigen um zu schauen ob das für die Orientierung des Zoomers hilfreich sein kann.
Vielen Dank
Gruss Dennis

AW: Ausrichten "left, top"
08.08.2007 16:03:00
Dennis
Hi Renee,
das mit dem .InsideLeft , insideTop ist super.
Damit kann ich mich mal wieder ein paar Stunden beschäftigen um zu schauen ob das für die Orientierung des Zoomers hilfreich sein kann.
Vielen Dank
Gruss Dennis

AW: Ausrichten "left, top"
08.08.2007 16:30:32
Dennis
gibt es ne Möglichkeit den Abstand von ChartArea zum Bilschirmrand zu ermitteln
Also nicht zum BlattRand auf dem sich chartArea.left bezieht.
Dieser Abstand ist ja variabel je nach dem wie weit man nach links und rechts scrollt.
Gruss Dennis

Anzeige
AW: Ausrichten "left, top"
08.08.2007 16:51:00
Renee
Hi Dennis,
Jetzt fängt's an.
Bildschirm ? nicht Window?
Was willst Du mit dem linken Rand, wenn er nicht sichbar ist?
Application.Left
Application.Width
ActiveWindow.Left
ActiveWindow.Width
Charts("Diagramm1").ChartArea.Left
Charts("Diagramm1").ChartArea.Width
Das gleiche für .Top und .Height
Dann noch Auflösungen, Bildschirme (ich arbeite z.B. mit 5 als 2!), Zoomfaktoren etc.etc.
Für was Du diese Zahlen brauchst ist mir schleierhaft. Ich glaube so kann Dein Ansatz unmöglich funktionieren!
Greetz Renee

Anzeige
AW: Ausrichten "left, top"
08.08.2007 17:14:13
Dennis
Hi Renee,
ActiveWindow. Left und Application. Left sind aber immer konstante Werte. Bei mir z.B. immer -2,75 bzw. -2.
ich such irgendwelche Werte die mir helfen können die aktuelle Position des Diagramms bezüglich des Bildschirms zu ermitteln.
Ist rech schwierig zu erklären....
die Mauspsotion am linken Rand des Monitors sind immer 0Pixel. Ist nun das Diagramm so positioniert das die ChartArea genau am linken MonitorRand beginnt, enstpricht der Wert von ChartArea.Left 0Pixel.
Scrollt man aber weiter nach rechts, dann beginnt die ChartArea ja nicht mehr genau am MonitorRand sondern schon zuvor. Daher wäre dann ChartArea.Left -8Pixel oder ähnliches.
Den Wert würde ich gerne irgendwie ermitteln, da ich denke dass dan später das ShapeRechteck dadurch ausgerichtet werden kann.
Gruss Dennis

Anzeige
AW: Ausrichten "left, top"
08.08.2007 17:24:18
Renee
Hi Dennis,
ActiveWindow. Left und Application. Left sind aber immer konstante Werte.
Das ist Quatsch. Sobald Du Excel nicht mehr maximiert hast, kannst Du das Fenster überall auf dem Bildschirm haben.
Sobald Du das Workbook in Excel nicht mehr maximiert hast, kannst Du das WB-Fenster überall im Excel-Window haben.
Kombiniere!
Greetz Renee

AW: Ausrichten "left, top"
08.08.2007 17:47:28
Dennis
Ok mein Fehler Renee,
aber der Wert verändert sich nicht beim scrollen innerhalb von Excel. Worauf ich momentan erstmal geschaut hab.
Das Problem mit minimierten und maximierten Fenster hab ich ehrlich gesagt übersehen :)
Ohje soviele Dinge auf die geachtet werden müssen. Glaub Nepumuk hatte recht, dass es 15 Jahre dauert ...
Gruss Dennis

Anzeige
AW: Ausrichten "left, top"
08.08.2007 15:49:00
Dennis
Ich hab mal ein Bild erstellt,
vielleicht wird es dann deutliches wo das Problem ist
Userbild
Gruss Dennis

AW: Ausrichten "left, top"
08.08.2007 15:50:00
Dennis
Ich hab mal ein Bild erstellt,
vielleicht wird es dann deutliches wo das Problem ist
Userbild
Gruss Dennis

AW: Ausrichten "left, top"
08.08.2007 15:50:00
Dennis
Ich hab mal ein Bild erstellt,
vielleicht wird es dann deutliches wo das Problem ist
Userbild
Gruss Dennis
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige