2016-07-08 19 views
-2

Das Bild unten ist ein Beispiel für das, was ich versuche zu tun. Mein Diagramm zeigt die Kapazität von Ressourcen im Monat. Ich wähle den Monat, für den ich Daten aus der Dropdown-Liste anzeigen möchte. Während dies in Excel ist, versuche ich dasselbe in Powerpoint mit den Charts und den AxtiveX-Steuerelementen zu erreichen. Kann mir bitte jemand dabei helfen?Ist es möglich, Diagramme in Powerpoint mit Combobox zu steuern?

Chart and combobox example

+0

Es ist nicht wirklich klar, was Sie fragen, aber ich bin fast sicher, die Antwort ist „Ja“. Was versuchst du eigentlich hier zu erreichen? Ihre Anwendung wird vermutlich in Excel VBE geschrieben, kontrolliert dann aber eine PPT-Datei in PowerPoint, oder? Was meinst du mit "Trigger Chart Display"? –

+0

Entschuldigung, dass ich nicht klarer bin. Ich habe ein Diagramm in Powerpoint, das mir die Kapazität von 4 Ressourcen für verschiedene Monate (Jan, Feb usw.) zeigt. Ich brauche Benutzer, um einen bestimmten Monat aus einem Kombinationsfeld Steuerelement auszuwählen, so dass nur Daten zu diesem Monat in meinem Diagramm angezeigt werden. Zum Beispiel: wenn ich Jan aus meinem Kombinationsfeld wähle, sollte das Diagramm die Kapazität der verfügbaren Ressourcen nur für einen Monat anzeigen. – Navya

+0

Haben Sie vor, Ihre Frage mit mehr Details/Klarheit zu bearbeiten? –

Antwort

0

ein Standard-Microsoft verwenden Forms 2.0 ComboBox-Steuerelement (ich verwende ActiveX-Steuerelemente nicht), das ist ziemlich viel, was Sie suchen.

Fügen Sie das ComboBox-Steuerelement auf der Folie ein, auf der sich das Diagramm befindet. Dies setzt voraus, dass die Diagrammdaten im Standardelement ListBox im Arbeitsblatt ChartData.Workbook.Worksheets(1) enthalten sind (dh, wenn Sie ein Diagramm direkt in PPT einfügen), wenn Sie ein Diagramm aus Excel kopieren. Dies muss möglicherweise überarbeitet werden, aber das allgemeine Idee ist die gleiche:

  1. Wenn der Benutzer die Combobox auswählt, (ComboBox1_GotFocus der Diagramm abfragt zugrunde liegenden Daten, die Liste zu füllen Wenn Ihre Daten unterschiedlich strukturiert ist, wird dies geändert werden müssen
  2. Benutzer machen kann.. eine Auswahl in der ComboBox
  3. Nach der Auswahl wird das Ereignis ComboBox1_Change den Datenbereich identifizieren h enthält die ausgewählte Serie, und versteckt die andere Serie, so dass nur die ausgewählte Reihe sichtbar ist

Hier ist meine Standarddiagramm & Daten, die ich mit der rechten Maustaste/Daten bearbeiten anzeigen können:

enter image description here

Anzeige der Diashow, die ComboBox Eingabe wird die Liste der Seriennamen angezeigt werden:

enter image description here

Ändern Sie dann die Auswahl, und sehen nur die ausgewählte Serie:

enter image description here

Option Explicit 
'This code belongs in a SLIDE module in PowerPoint 
Private Sub ComboBox1_Change() 
'This procedure hides/unhides chart series, based on combobox value 
    Dim rng As Object 'Excel.Range object 
    Dim c As Long 

    With Me.Shapes("Content Placeholder 5").Chart.ChartData '## MODIFY YOUR SHAPE NAME 
     .Activate 
     .Workbook.Parent.WindowState = -4140 
     For c = 2 To .Workbook.Worksheets(1).ListObjects(1).HeaderRowRange.Columns.Count 
      Set rng = .Workbook.Worksheets(1).ListObjects(1).HeaderRowRange.Cells(c) 
      rng.EntireColumn.Hidden = (rng.Value <> ComboBox1.Value) 
     Next 
     .Workbook.Close 
    End With 

End Sub 

Private Sub ComboBox1_GotFocus() 
'This procedure sets the list items in the combobox whenever it gets focus 
Dim lst As Variant 
Dim xlApp As Object 
With Me.Shapes("Content Placeholder 5").Chart.ChartData '## MODIFY YOUR SHAPE NAME 
    .Activate 
    .Workbook.Parent.WindowState = -4140 
    Set xlApp = .Workbook.Parent 
    .Workbook.Worksheets(1).Columns("B:D").Hidden = False 
    lst = xlApp.Transpose(xlApp.Transpose(.Workbook.Worksheets(1).Range("B1:D1").Value)) 
    .Workbook.Close 
End With 
ComboBox1.List = lst 
End Sub 
+0

Wow, das ist großartig. Genau das, was ich machen wollte. Vielen Dank dafür !! Neues lernen für mich. – Navya