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 ... verkleinern/vergrößern (Folgethread)

Diagramm ... verkleinern/vergrößern (Folgethread)
21.11.2006 12:54:11
proxima05
Ich muss diese Frage nochmal aus den Tiefen des Archivs nach oben bringen. Hier er Link zum Originalthread
https://www.herber.de/forum/archiv/816to820/t817826.htm
Ich habe den Code zur Verkleinerung des Diagrammblatts auf eine Befehlsschaltfläche gelegt; den Vorschlag von Daniel habe ich etwas erweitert, weil ja erst das entsprechende Blatt aktiviert werden muss; so sieht es dann aus:
***********************************

Private Sub CommandButton5_Click()
Worksheets("Corr_Charts").Activate
With ActiveSheet
Range(.Shape("Chart1").TopLeftCell, .Shapes("Chart4").BottomRightCell).Select
End With
ActiveWindow.Zoom = True
End Sub

***********************************
Wenn ich dann auf den Button klicke, dann erscheint die folgende Meldung:
Run-time error: '-2147024809 (80070057)
The item with the specified name wasn't found
Ich vermute, dass es mit den Chartnamen zusammenhängt ... die zeigen in deren Eigenschaften den Namen Chart1 bis Chart4.
Irgendwie komme ich da jetzt nicht weiter. Hätte da jemand eine Lösung (Daniel?)
Danke & Gruß
Ralph

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm ... verkleinern/vergrößern (Folgethread)
21.11.2006 17:05:55
fcs
Hallo Ralph,
ein "."(vor Range) und ein "s" (hinter "Shape") an der richtigen Stelle könnten helfen.

Private Sub CommandButton5_Click()
Worksheets("Corr_Charts").Activate
With ActiveSheet
.Range(.Shapes("Chart1").TopLeftCell, .Shapes("Chart4").BottomRightCell).Select
End With
ActiveWindow.Zoom = True
End Sub

Gruß
Franz
AW: Diagramm ... verkleinern/vergrößern (Folgethre
21.11.2006 23:36:53
proxima05
Hallo Franz,
schön wieder etwas von Dir zu lesen ..... ich probiere es morgen aus und melde mich (hoffe es war nur der ".").
Danke & Gruß
Ralph
AW: Diagramm ... verkleinern/vergrößern (Folgethread)
22.11.2006 09:13:41
Proxima05
Hallo,
habe den "." und das "s" eingefügt, und jetzt funktioniert es! :-) ......
Jetzt habe ich noch eine Frage:
Die Range ist jetzt von "Chart 1" bis "Chart 4" ..... wie kann ich denn die Namen der Charts ändern .... im Design Mode/Eigenschaften bekomme ich keinen Namen angezeigt, den ich irgendwie verändern könnte (wie z.B. die Properties bei einer Befehlsschaltfläche).
Gibt es da eine Möglichkeit?
Danke
Ralph
Anzeige
AW: Diagramm ... verkleinern/vergrößern (Folgethread)
22.11.2006 13:46:20
fcs
Hallo Ralph,
in einer Tabelle eingebetteten Diagrammen kann man eines Wissens nur per VBA einen individuellen Namen zuweisen.
Gruß
Franz
Beispielcode mit Inputbox. Das jeweilige Diagramm wird dabei als Hilfe aktiviert.

Sub DiagrammeBenennen()
Dim Figur As ChartObject, Objekt As Object
On Error Resume Next
Set Objekt = Selection
For Each Figur In ActiveSheet.ChartObjects
Figur.Activate
Bezeichnung = InputBox("Name von Diagramm: " & Figur.Name & " ?", "Diagramm benamen", Figur.Name)
If Bezeichnung <> "" Then
Figur.Name = Bezeichnung
End If
Next
Objekt.Select
End Sub
oder wenn du die von Excel automatisch vergebenen Namen kennst
Sub DiagrammeBenennen2()
With ActiveSheet
.ChartObjects("Chart 1").Name = "Testdiagramm1"
.ChartObjects("Chart 2").Name = "Testdiagramm2"
.ChartObjects("Chart 3").Name = "Testdiagramm3"
.ChartObjects("Chart 4").Name = "Testdiagramm4"
End With
End Sub

Anzeige
AW: Diagramm ... verkleinern/vergrößern (Folgethread)
24.11.2006 13:30:39
proxima05
Hallo Franz,
danke für Deinen Code ......
Ich habe jetzt noch ein kleines Problem mit dem Vergrößern der Charts (das Reduzieren auf eine Seite funktioniert einwandfrei). Mit dem folgenden Code will ich einen beliebigen Chart in der Range auf max. Größe (oder noch lieber auf ein vorher definiertes Maß bringen).
*****************************************

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".
With ActiveSheet.Shapes(Application.Caller)
.Range(.TopLeftCell, .BottomRightCell).Select
End With
ActiveWindow.Zoom = True
End Sub

*****************************************
Leider produziert das die Meldung "Object doesn't support this property or method".
Kann da jemand helfen?
Besten Dank
Ralph
Anzeige
AW: Diagramm ... verkleinern/vergrößern (Folgethre
25.11.2006 10:27:55
fcs
Hallo Ralph,
damit deine Prozedur funktioniert muss du auf das korrekte Objekt verweisen. Mit folgender Ergänzung funktioniert deine Prozedur. Dann wird der Zoom-Faktor so eingestellt, dass der Bereich in dem die Grafik positioniert ist etwa das Fenster ausfüllt.

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".
With ActiveSheet.Shapes(Application.Caller)
ActiveSheet.Range(.TopLeftCell, .BottomRightCell).Select
End With
ActiveWindow.Zoom = True
End Sub

Gruss
Franz
Anzeige
AW: Diagramm ... verkleinern/vergrößern (Folgethre
25.11.2006 13:37:24
proxima05
Hallo Franz,
es war in der Tat nur diese Kleinigkeit, dass das aktive Objekt genannt werden muss (ActiveSheet).
Sag' mal, gibt es die Möglichkeit die Charts nicht annähernd auf Bildschirmgröße zu vergrößern, sondern eine bestimmte Größe (Höhe, Breite) vorher festzulegen?
Danke, besten Gruß
Ralph
AW: Diagramm ... verkleinern/vergrößern (Folgethre
25.11.2006 13:58:26
proxima05
Sag' mal Franz,
kann man das Vergrößern mit einem erneuten Klick wieder zurücknehmen, so dass dann wieder die reduzierte Sicht erscheint?
Sorry, wenn ich soviele Fragen stelle.
Gruß
Ralph
AW: Diagramm ... verkleinern/vergrößern (Folgethre
25.11.2006 16:21:21
fcs
Hallo 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
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige