Excel Makro - Diagramme anzeigen

Hallo zusammen!

Habe ein kleines Excel Makro Problem.
Folgende Situation:

Ich habe eine Mappe mit mehreren Tabellen. In der ersten Tabelle befindet sich meine Buttons und in Tabelle 7 habe ich mehrere Diagramme hinterlegt.

Wenn man auf Button1 in Tabelle1 klickt soll das Diagramm1 in Tabelle7
angezeigt werden usw.

Ist dies irgendwie möglich.

Vielen Dank im Voraus für eure Hilfe.

Gruß Surranian

Ich habe eine Mappe mit mehreren Tabellen. In der ersten
Tabelle befindet sich meine Buttons und in Tabelle 7 habe ich
mehrere Diagramme hinterlegt.

Wenn man auf Button1 in Tabelle1 klickt soll das Diagramm1 in
Tabelle7
angezeigt werden usw.

Hi Surranian,

soll dann das Diagramm1 von Blatt7 im Blatt1 angezeigt werden oder soll zu Blatt7 gewechselt werden und dort zum Diagramm1 „gehüpft“ werden ?

Gruß
Reinhard

Huhu Reinhard,

„oder soll zu Blatt7 gewechselt werden und dort zum Diagramm1
„gehüpft“ werden ?“

Genau so soll es sein :smiley:

Lieben Gruß

„oder soll zu Blatt7 gewechselt werden und dort zum Diagramm1
„gehüpft“ werden ?“

Genau so soll es sein :smiley:

Hi Surranian,

wenn die Buttons aus Steuerelement–Formular stammen, dann weise allen dieses Makro zu:

Sub Huepfe()
Dim Nr
Nr = Replace(Application.Caller, "Schaltfläche ", "")
With Worksheets("Tabelle7")
 .Activate
 .Shapes("Chart " & Nr).Select
End With
End Sub

Gruß
Reinhard

1 Like

Hallo Reinhard,

also nun wird zwar in die gewünschte Tabelle gesprungen, allerdings kommt auch der Debugger zum Einsatz und meckert an dieser Zeile rum:

.Shapes("Chart " & Nr).Select

Und dann werden auch alle anderen Digramme angezeigt.
Ich hätte es aber gerne, dass man nur dieses bestimmte Diagramm
sehen kann und die anderen derweil ausgeblendet sind.

Evtl. weißt du ja noch einen Rat.
Bedanke mich für deine Mühe!

Hallo Surranian,

also nun wird zwar in die gewünschte Tabelle gesprungen,
allerdings kommt auch der Debugger zum Einsatz und meckert an
dieser Zeile rum:

.Shapes("Chart " & Nr).Select

laß mal diesen Code laufen und poste hier die exakten (also auch darin enthaltene Leerzeichen!) Namen der Diagramme, dann ändere die 7 ab in 1 in der Zeile
With Worksheets(„Tabelle7“)
und laße den Code nochmal laufen, damit erhälst du die Namen deiner Schaltflächen, zeige auch diese Namen.

Sub Namen()
Dim N
With Worksheets("Tabelle7")
 For N = 1 To .Shapes.Count
 MsgBox .Shapes(N).Name
 Next N
End With
End Sub

Gruß
Reinhard

Hallo Reinhard,

also die Namen der Schaltflächen wären

Drop Down 30
Drop Down 31 etc. (die kann ich ausschließen :stuck_out_tongue:)
CommandButton1
CommandButton2
CommandButton3

und zu guter letzt Button 45 bis Button 98

Die Diagramme heißen:
Chart 1
Chart 2
Chart 4

Lieben Gruß

also die Namen der Schaltflächen wären
CommandButton1
CommandButton2
CommandButton3
und zu guter letzt Button 45 bis Button 98

Die Diagramme heißen:
Chart 1
Chart 2
Chart 4

Hallo Surranian,

dann brauche ich eine genaue Zuordnung welcher Button ist für welches Chart zuständig, so in etwa:

Tabellenblatt: H:\[kwWasFaulMitShapes.xls]!Tabelle2
 │ A │ B │
──┼───────────┼─────────┤
1 │ Button │ Chart │
──┼───────────┼─────────┤
2 │ Button 45 │ Chart 7 │
──┼───────────┼─────────┤
3 │ Button 46 │ Chart 2 │
──┼───────────┼─────────┤
4 │ Button 53 │ Chart 1 │
──┼───────────┼─────────┤
5 │ Button 48 │ Chart 8 │
──┼───────────┼─────────┤
6 │ Button 62 │ Chart 6 │
──┴───────────┴─────────┘

Tabellendarstellung erreicht mit dem Code in FAQ:2363

Gruß
Reinhard

Also:

CommandButton1 - Chart 1
CommandButton2 - Chart 2
CommandButton3 - Chart 4

Da mach ich dir aber ganz schön zu schaffen *schäm*

CommandButton1 - Chart 1
CommandButton2 - Chart 2
CommandButton3 - Chart 4
Da mach ich dir aber ganz schön zu schaffen *schäm*

Hallo Surranian,

es geht, zumindest beantwortest du ja meine Rückfragen, das ist leieder nicht immer der Fall.

In das Dokumentmodul von Tabelle1:

Option Explicit
'
Private Sub CommandButton1\_Click()
Call Zeigen(1)
End Sub
'
Private Sub CommandButton2\_Click()
Call Zeigen(2)
End Sub
'
Private Sub CommandButton3\_Click()
Call Zeigen(4)
End Sub

In das Dokumentmodul von Tabelle7:

Option Explicit
'
Private Sub Worksheet\_Activate()
Call AlleEinblenden
End Sub
'
Private Sub Worksheet\_Deactivate()
Call AlleEinblenden
End Sub


In ein Satandardmodul, z.B. Modul1:

Option Explicit
'
Sub Zeigen(ByVal Nr As Integer)
Dim S As Shape
Application.ScreenUpdating = False
With Worksheets("Tabelle7")
 Application.EnableEvents = False
 .Activate
 Application.EnableEvents = True
 For Each S In .Shapes
 If S.Name Like "Chart\*" Then
 S.Visible = False
 End If
 Next S
 .Shapes("Chart " & Nr).Visible = True
 '.Shapes("Chart " & Nr).Select
End With
Application.ScreenUpdating = True
End Sub
'
Sub AlleEinblenden()
Dim S As Shape
Application.ScreenUpdating = False
With Worksheets("Tabelle7")
 For Each S In .Shapes
 If S.Name Like "Chart\*" Then
 S.Visible = True
 End If
 Next S
End With
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard

1 Like

Na doch, ich kann ein bisschen VBA, jedenfalls weiß ich mir bei einfachen Dingen weiterzuhelfen. Das sieht schon ziemlich schwierig aus. Und das ich Rückfragen beantworte ist doch logisch, immerhin möcht ich mein Problem ja gelöst haben :smile:

So ich probier das mal aus und werd dann ein Feedback abliefern.

Lieben Gruß

Oki, das funktioniert. Ich bedanke mich recht herzlich :smiley:

Oki, das funktioniert. Ich bedanke mich recht herzlich :smiley:

Hallo Surranian,

freut mich, je nachdem ob du das Hochkomma vor
'.Shapes("Chart " & Nr).Select
läßt oder entfernt wird dann das Diagramm selektiert oder nicht.

Gruß
Reinhard