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 
Lieben Gruß
„oder soll zu Blatt7 gewechselt werden und dort zum Diagramm1
„gehüpft“ werden ?“
Genau so soll es sein 
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 „Gefällt mir“
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
)
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 „Gefällt mir“
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 
So ich probier das mal aus und werd dann ein Feedback abliefern.
Lieben Gruß
Oki, das funktioniert. Ich bedanke mich recht herzlich 
Oki, das funktioniert. Ich bedanke mich recht herzlich 
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