PDA

Vollständige Version anzeigen : Alle Diagramme ausblenden via Schleife?


media
06.07.2006, 15:38
Hallo zusammen,

ich habe in einem Sheet 32 Diagramme erstellt! Diese möchte ich nun nach 4 Gruppen unterteilt ein bzw ausblenden.

In dem ich jedes Diagramm einzeln anspreche mit visable = true, oder false, kommt vieeeel Code zusammen.

Kann man über eine Schleife alle diagramme ausblenden und nur die einblenden die man möchte?

Grüsse

media

Lumpensammler
06.07.2006, 15:42
Hallo, media,

kann man, aber ich würde für die einzelnen Diagrammgruppen Namen verwenden, um die Gruppen anzusprechen.

Sonst in der Art

For Each cht in Charts
If Left(cht.Name, 4) = "GRP1" Then
'...
Next
Oder über eine Schleife arbeiten und Parameter übergeben.

Gruß
LS

media
06.07.2006, 15:52
Hallo Lumpensammler,

Gruppen gehen leider nicht, da das ein-, bzw ausblenden nicht immer gleich für jedes Diagramm ist.

Kannst du mir die Schleife evtl. genau vorgeben, wie man jedes Diagramm auf einem Sheet ausblendet?

Habe leider 0 Ahnung bisher von Schleifen


Danke


media

Lumpensammler
06.07.2006, 16:04
Hallo, media,

es ist einfach zu warm zum überlegen. ;)

Option Explicit

Sub ChartsAusblenden()
Dim cht As Object
For Each cht In ActiveSheet.Shapes
cht.Visible = xlSheetHidden
Next
End Sub
Gruß
LS

media
06.07.2006, 16:14
Wo du recht hast, haste eben Recht....schwitz:-)

Danke...klappt super, aber er blendet mir nun auch meine Buttons und ckeckboxen aus..argl

Kann man das noch verhindern?

Grüsse

media

Beverly
06.07.2006, 16:53
Hi Du,

vielleicht damit
Sub ausblenden()
Dim loI As Long
For loI = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects(loI).Visible = False
Next loI
End Sub

media
06.07.2006, 17:05
Super:-)

Vielen dank euch beiden.Klappt nun 100%

Danke


Grüsse

media

R J
06.07.2006, 17:08
Hi Media,

keine Ahjnung, was Du mit Gruppen meinst (und wonach Du gruppierst). Aber hier vielleicht mal ein Denkansatz:

Erstelle Dir eine Userform. Platziere eine Listbox (Multiselect auf 1 setzen) und einen Button darauf. Beim Aufruf der Form werden alle Diagramme mit Namen und Typ in die Listbox eingelesen. Alle darin angezeigten Diagramme kannst Du jetzt auswählen. Bei Klick auf den Button werden die ausgewählten ausgeblendet (bzw beim nächsten Klick ohne Auswahl wieder eingeblendet). Hier der Code dazu:


Private Sub Cmdshow_Click()
Dim x, cht As Shape, l As Byte, T#

For x = 0 To lbCharts.ListCount - 1

For Each cht In ActiveSheet.Shapes
l = InStr(1, lbCharts.List(x), ":")
If CDbl(VBA.Mid(lbCharts.List(x), l + 1)) = cht.Chart.ChartType Then
cht.Visible = Not lbCharts.Selected(x)
End If
Next
Next x

End Sub

Private Sub UserForm_Activate()
Dim cht As Shape, N$, T$

Sheets("Tabelle1").Activate
For Each cht In ActiveSheet.Shapes
N = cht.Name
T = N & " Typ: " & CStr(cht.Chart.ChartType)
lbCharts.AddItem T
Next

End Sub