Diagramm-Größe

Bild

Betrifft: Diagramm-Größe
von: Caroline
Geschrieben am: 24.10.2003 13:29:56


Hallo,

nochmal ne kleine Frage zu meinem Diagramm:

Das hier hat der Makrorecorder aufgezeichnet:

ActiveSheet.Shapes("Diagramm 197").ScaleWidth 1.48, msoFalse, _
msoScaleFromTopLeft

Wie muss ich diese Anweisung schreiben, wenn ich nicht "Diagramm 197" habe, sondern mit ActiveChart arbeiten muss? ActiveSheet.Shapes(ActiveChart) geht ja nicht...

Danke nochmal,
Caroline

Bild


Betrifft: AW: Diagramm-Größe
von: Jörg Gradert
Geschrieben am: 24.10.2003 13:56:11

Hallo Caroline,
Das Diagramm wird mit gedrückter Shifttaste(Umschalttaste) ausgewählt, so dass die kleinen Quadrate am Rand weiss erscheinen, nicht schwarz.

Oder im Programm mit
ActiveSheet.Shapes("Chart 197").Select
Dann geht

Selection.ShapeRange.ScaleWidth 1.48, msoFalse, msoScaleFromTopLeft

Gruss Jörg


Bild


Betrifft: AW: Diagramm-Größe
von: Caroline
Geschrieben am: 24.10.2003 13:59:52

Hallo Jörg,

ich glaub ich hab mich etwas dumm ausgedrückt...

Mein Problem ist, dass ich diese Zeile benötige:
ActiveSheet.Shapes("Diagramm 197").ScaleWidth 1.48, msoFalse, _
msoScaleFromTopLeft

ABER den Namen (also "Diagramm 197") nicht kenne. Ich generiere dynamisch mehrere Diagramme und kann die Namen nicht hartkodieren. Ich muss die oben genannte Anweisung irgendwie mit ActiveChart anstatt "Diagramm 197" hinkriegen. Nur wie???


Caroline


Bild


Betrifft: AW: Diagramm-Größe
von: Jörg Gradert
Geschrieben am: 24.10.2003 14:04:36

Hallo Caroline,
was macht dein Diagramm denn zum ActiveChart?
Wie aktivierst Du es?

Gruss Jörg


Bild


Betrifft: AW: Diagramm-Größe
von: Caroline
Geschrieben am: 24.10.2003 14:12:05

Hey Jörg,

also ich erstelle ein neues mit:
Charts.Add
und danach mach ich tausend andere Ding mit diesem ActiveChart. Z.B. Achsenbeschriftung, Hintergrundfarbe... immer so:
With ActiveChart
' mach was
End With

Und als letztes möchte ich eben die Gesamtgröße anpassen und hab mir mal angeschaut, wie das der Makrorecorder macht. Um das zu testen, habe ich das vorhandene Diagramm angeklickt und das hieß "Diagramm 197".
Da ich aber den Code ohne bestimmten Namen brauche, sondern immer für das gerade aktive Diagramm, muss ich diese Zeile irgendwie anpassen, ohne einen absolten Wert als Namen zu haben.

ActiveSheet.Shapes("Diagramm 197").ScaleWidth 1.48, msoFalse, _
msoScaleFromTopLeft

Ich hoffe Du verstehst was ich meine?!


Bild


Betrifft: NOCH OFFEN: Diagramm-Größe
von: Jörg Gradert
Geschrieben am: 24.10.2003 14:35:09

Hallo Caroline,
ich verstehe was Du meinst, bin aber im Moment auch überfragt.
Ich suche weiter.

Gruss Jörg


Bild


Betrifft: Habe Lösung!
von: Caroline
Geschrieben am: 24.10.2003 15:29:53

Hey Jörg,

danke für's knobeln und probieren und testen und und und...

Ich habe hier einfach weiterprobiert und jetzt folgende Vorgehensweise - die auch funktioniert!

- Ich frage den Namen des Diagramms ab,
- muss diesen dann noch um den Namen des Tabellenblatts kürzen (der wird automatisch vorne angehängt)
- und kann dann mit der Variable, in der der Diagrammname gespeichert ist
ActiveSheet.Shapes(varible_diagram_name).irgendwas
aufrufen.

Aber nochmal DANKE für die Mühe, die Du Dir gemacht hast!

Caroline


Bild


Betrifft: AW: Habe Lösung!
von: Jörg Gradert
Geschrieben am: 24.10.2003 16:52:07

Hallo Caroline,
da bist Du schneller gewesen als ich, habe gerade folgendes entwickelt:

Dim N As String
Dim Name As String
N = ActiveChart.Name
Name = Right(N, Len(N) - InStr(1, N, " "))
ActiveSheet.Shapes(Name).ScaleWidth 1.05, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes(Name).ScaleHeight 1.11, msoFalse, _
msoScaleFromBottomRight

Ich habe sehr lange an der InStr() Suche probiert, bevor ich sie verstand.
Das Ergebnis läuft wohl auf dasselbe heraus.

Gruss Jörg


 Bild

Beiträge aus den Excel-Beispielen zum Thema " 2 Blätter einer Datei gleichzeitig anzeigen"