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

Diagramm ..... vergrößern (Folgethread 2)

Diagramm ..... vergrößern (Folgethread 2)
26.11.2006 10:42:38
proxima05
Da der Hauptthread auch bereits in die Tiefen des Archivs gewandert ist, möchte ich nochmals einen Folgethread eröffnen (auch um mich für die tolle Unterstützung zu bedanken.
@FCS .... vielen Dank für diesen Code (ich baue ihn mal ein und melde mich nochmal).
Gruß und einen schönen Sonntag
Ralph
===========================================
mit nachfolgender Anpassung wird nach einem weiteren Klick auf das Diagramm wieder der vorherige Zoom-Faktor für die Ansicht eingestellt.
Public ZoomFaktor, ChartZoom As Boolean

Sub Charts_ZoomOut()
'Zum Vergrößern einzelner Charts dient das folgende Makro; es erkennt von welchem Chart
'aus es aufgerufen wurde und bringt diesen auf maximale Größe.
'Die Zuordnung des Makros erfolgt über "Rechtsklick im Chartfenster und Makro zuordnen".
If ChartZoom = True Then
ActiveWindow.Zoom = ZoomFaktor
ChartZoom = False
Else
With ActiveSheet.Shapes(Application.Caller)
ActiveSheet.Range(.TopLeftCell, .BottomRightCell).Select
End With
ZoomFaktor = ActiveWindow.Zoom
ActiveWindow.Zoom = True
ChartZoom = True
End If
End Sub

Falls du nicht den Zoom-Faktor für die Ansicht sondern die Größe eines Charts auf bestimmt Werte festlegen willst, dann muss du die Width und Height-Eigenschaft des Charts anpassen.
Nachfolgendes Makro ändert die Größe des Diagramm nach Klick. Bei zweitem Klick wird die vorherige Größe wieder hergestellt. Die Größe des Diagramms orientiert sich dabei an der Größe des aktiven Fensters. Man kann hier natürlich auch eine Feste Breite vorgeben und die Höhe mit dem Faktor berechnen.
Public ChartGross As Boolean, ChartBreite, ChartName As String

Sub Charts_Size()
'Zum Vergrößern einzelner Charts dient das folgende Makro; es erkennt von welchem Chart
'aus es aufgerufen wurde und bringt diesen auf die Größe des aktiven Fensters.
'Die Zuordnung des Makros erfolgt über "Rechtsklick im Chartfenster und Makro zuordnen".
With ActiveSheet.Shapes(Application.Caller)
If ChartGross = True Then
If .Name = ChartName Then
Faktor = .Height / .Width
.Width = ChartBreite
.Height = Faktor * .Width
ChartGross = False
Else
MsgBox "Diagramm: " & ChartName & " wurde noch nicht wieder verkleinert! " & vbLf & vbLf _
& "Bitte erst dieses Diagramm anklicken."
End If
Else
Faktor = .Height / .Width
ChartBreite = .Width
.Width = 0.85 * ActiveWindow.Width '600
If Faktor * .Width > 0.85 * ActiveWindow.Height Then
.Height = 0.85 * ActiveWindow.Height  '400
.Width = .Height / Faktor
Else
.Height = .Width * Faktor
End If
.ZOrder msoBringToFront
ActiveWindow.ScrollRow = .TopLeftCell.Row
ActiveWindow.ScrollColumn = .TopLeftCell.Column
ChartName = .Name
ChartGross = True
End If
End With
End Sub

Gruss
Franz

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm ..... vergrößern (Folgethread 2)
26.11.2006 17:56:27
proxim05
Franz, ich habe den Code für den Zoomfaktor mal eingebaut, er funktioniert auch. Wichtig ist nur, dass er ganz am Anfang des Gesamt-Codes steht, sonst gibt es Schwierigkeiten (Compile Error: Only comments may appear after End Sub, End Function, or End Property.) mit nachfolgenden Subs.
Das Zurückspringen auf den vorherigen ZoomFaktor funktioniert, allerdings nur für den gerade ausgewählten Chart .... ich hatte mir das so vorgestellt, dass dann wieder die Gesamtheit aller Charts reduziert sichtbar ist (als Range Chart1 bis Chart4). Ich habe mal versucht, das derart zu ändern, dass ich nach der Zeile
ActiveSheet.Range(.TopLeftCell, .BottomRightCell).Select
die folgende eingefügt habe
ActiveSheet.Range(.Shapes("Chart 1").TopLeftCell, .Shapes("Chart 5").BottomRightCell).Select
Das hat aber nicht geklappt.
Hast Du da eine Idee?
Danke & Gruß
Ralph
Anzeige
AW: Diagramm ..... vergrößern (Folgethread 2)
26.11.2006 18:42:27
fcs
Hallo Ralph,
es muss nicht der gesamte Code am Anfang im Modul stehen, sondern nur die Zeile
Public ZoomFaktor, ChartZoom As Boolean
mit der Deklaration von Variablen, die auch außerhalb der Prozedur ihre Werte behalten sollen. Die Prozedur selber (von Sub... bis End Sub) kann dann an beliebiger Position im Modul stehen.
Um den Zoom beim erneuten Klick auf das Diagramm so einzustellen, dass die gewünschten Diagramme im Fenster als Übersicht dargestllt werden, schaut der Code etwa wie folgt aus.
Gruss
Franz

Public ChartZoom As Boolean
Sub Charts_ZoomOut()
'Zum Vergrößern einzelner Charts dient das folgende Makro; es erkennt von welchem Chart
'aus es aufgerufen wurde und bringt diesen auf maximale Größe.
'Die Zuordnung des Makros erfolgt über "Rechtsklick im Chartfenster und Makro zuordnen".
If ChartZoom = True Then
With ActiveSheet
.Range(.Shapes("Chart 1").TopLeftCell, .Shapes("Chart 5").BottomRightCell).Select
End With
ActiveWindow.Zoom = True
ChartZoom = False
Else
With ActiveSheet.Shapes(Application.Caller)
ActiveSheet.Range(.TopLeftCell, .BottomRightCell).Select
End With
ActiveWindow.Zoom = True
ChartZoom = True
End If
End Sub

Anzeige
AW: Diagramm ..... vergrößern (Folgethread 2)
26.11.2006 19:23:34
proxima05
Franz,
danke für Deine schnellen Antworten .... Deine Codes sind echt der Wahnsinn und sie funktionieren. Ich habe jetzt auch mal denjenigen mit dem Faktor probiert (klasse!) .... allerdings hat der auch das gleiche Problem, dass nur der gezoomte Chart wieder verkleinert und dessen Bereich ausgewählt wird ..... wo setze ich den eine Ergänzung im Code ein, damit mir wiederum alle Charts verkleinert dargestellt werden (so wie in der Zeile
With ActiveSheet
.Range(.Shapes("Chart 1").TopLeftCell, .Shapes("Chart 5").BottomRightCell).Select
eingetragen. M.E. müsste dann erstmal wieder aus den 0.85 ein 1.0 werden und der vorige Befehl ausgeführt werden, denn aktuell werden alle Charts in der Gesamtübersicht auf 0.85 gebracht.
Verbindlichsten Dank.
Ralph
Anzeige
AW: Diagramm ..... vergrößern (Folgethread 2)
26.11.2006 20:17:10
fcs
Hallo Ralph,
diese Diagramm-Spielereien innerhalb eines Tabellenblatts sind für mich auch Neuland. Ich bevorzuge Diagramme als separate Registerblätter.
Hier dann auch noch die Anpassung, wenn die Größe des Diagramms temporär vergrößert wird.
Statt "Chart 1" muss du ggf. das Chart angeben, das in der Übersicht links oben angeordnet ist, um die Übersicht im ActiveWindow optimal anzuzeigen.
Gruss
Franz

Public ChartGross As Boolean, ChartBreite, ChartName As String
Sub Charts_Size()
'Zum Vergrößern einzelner Charts dient das folgende Makro; es erkennt von welchem Chart
'aus es aufgerufen wurde und bringt diesen auf maximale Größe. nach 2. Klick
'wirdÜbersicht wieder angezeigt
'Die Zuordnung des Makros erfolgt über "Rechtsklick im Chartfenster und Makro zuordnen".
With ActiveSheet.Shapes(Application.Caller)
If ChartGross = True Then
If .Name = ChartName Then
Faktor = .Height / .Width
.Width = ChartBreite
.Height = Faktor * .Width
With ActiveSheet
.Range(.Shapes("Chart 1").TopLeftCell, .Shapes("Chart 5").BottomRightCell).Select
ActiveWindow.Zoom = True
ActiveWindow.ScrollRow = .Shapes("Chart 1").TopLeftCell.Row
ActiveWindow.ScrollColumn = .Shapes("Chart 1").TopLeftCell.Column
End With
ChartGross = False
Else
MsgBox "Diagramm: " & ChartName & " wurde noch nicht wieder verkleinert! " & vbLf & vbLf _
& "Bitte erst dieses Diagramm anklicken."
End If
Else
Faktor = .Height / .Width
ChartBreite = .Width
.Width = 0.85 * ActiveWindow.Width '600
If Faktor * .Width > 0.85 * ActiveWindow.Height Then
.Height = 0.85 * ActiveWindow.Height  '400
.Width = .Height / Faktor
Else
.Height = .Width * Faktor
End If
.ZOrder msoBringToFront
ActiveWindow.ScrollRow = .TopLeftCell.Row
ActiveWindow.ScrollColumn = .TopLeftCell.Column
ChartName = .Name
ChartGross = True
End If
End With
End Sub

Anzeige
AW: Diagramm ..... vergrößern (Folgethread 2)
27.11.2006 09:53:08
proxima05
Franz, es funktioniert alles hervorragend ..... Danke für Deine tolle Unterstützung.
Gruß
Ralph

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige