Frage : Reihe für ein Excel-Diagramm using VBA hinzufügen und entfernend

Hallo,
I morgens Schwierigkeit habend, eine Reihe einem Diagramm hinzuzufügen, das ich using VBA erzeugt habe. Ich möchte verschiedene Reihe abhängig von dem Wert einer Zahl in einer Excel-Zelle zeigen. Dieses Teil des Codes funktioniert gut; jedoch wenn ich versuche hinzuzufügen, haben zusätzliche Reihen zum Diagramm, damit ich 3 verschiedenen einen (während Farbkennzeichnung, welche die Reihe zeigt), mich sofort zeigen kann, kein Glück - ich halte, eine Störung unabhängig davon jede mögliche Syntax zu erhalten, der I use.

I wissen, dass dieses recht einfach ist und dem Erhalten der Syntax miteinbezieht korrekt, aber ich nicht scheinen kann, herauszufinden, was es is.

As ich angab, ich möchte sein, eine Reihe (welche abhängig von dem Wert der Zelle unterschiedlich sind), für 5 Wahlen anzuzeigen, während auf der 6. Wahl ich fähige t-Anzeige sein möchte 3 Reihe in der Kombination. Wenn der Benutzer Wahl 1 -5 wählt, nachdem er otion 6 gewählt hat, muss das Diagramm eine Reihe (also mich nur wieder anzeigen, kann die Reihe entfernen müssen, nachdem sie nicht sure addieren -).

Please überprüfen den Code attached.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
Public VorUpdateChart ()

    Schwaches ChtObj als ChartObject
    Schwaches PriceType als lang
    ChtObj = ActiveSheet.ChartObjects einstellen (1)
    
    Application.ScreenUpdating = falsch
    
    PriceType = ActiveSheet.Cells (13, 20). Wert
    
    Wenn PriceType = 1 dann
        ChtObj.Chart.SeriesCollection (1).Values = ActiveSheet.Range („771: 1475“)
        ChtObj.Chart.SeriesCollection (1).MarkerBackgroundColorIndex = 1
        ChtObj.Chart.SeriesCollection (1).MarkerBackgroundColorIndex = 4
        ChtObj.Visible = richten aus
    Sonst
    Wenn PriceType = 2 dann
        ChtObj.Chart.SeriesCollection (1).Values = ActiveSheet.Range („$D$771: $D$1475“)
        ChtObj.Chart.SeriesCollection (1).MarkerForegroundColorIndex = 1
        ChtObj.Chart.SeriesCollection (1).MarkerBackgroundColorIndex = 5
        ChtObj.Visible = richten aus
    Sonst
    Wenn PriceType = 3 dann
        ChtObj.Chart.SeriesCollection (1).Values = ActiveSheet.Range („$E$771: $E$1475“)
        ChtObj.Chart.SeriesCollection (1).MarkerForegroundColorIndex = 1
        ChtObj.Chart.SeriesCollection (1).MarkerBackgroundColorIndex = 3
        ChtObj.Visible = richten aus
    Sonst
    Wenn PriceType = 4 dann
        ChtObj.Chart.SeriesCollection (1).Values = ActiveSheet.Range („$I$771: $I$1475“)
        ChtObj.Chart.SeriesCollection (1).MarkerForegroundColorIndex = 1
        ChtObj.Chart.SeriesCollection (1).MarkerBackgroundColorIndex = 9
        ChtObj.Visible = richten aus
    Sonst
    Wenn PriceType = 5 dann
        ChtObj.Chart.SeriesCollection (1).Values = ActiveSheet.Range („$F$771: $F$1475“)
        ChtObj.Chart.SeriesCollection (1).MarkerForegroundColorIndex = 1
        ChtObj.Chart.SeriesCollection (1).MarkerBackgroundColorIndex = 7
        ChtObj.Visible = richten aus
    Sonst
    Wenn PriceType = 6 dann
        
        ChtObj.Chart.SeriesCollection (1).Values = ActiveSheet.Range („D$771: $D$1475“)
        ChtObj.Chart.SeriesCollection (1).MarkerForegroundColorIndex = 1
        ChtObj.Chart.SeriesCollection (1).MarkerBackgroundColorIndex = 5
        ChrtObj.Chart.SeriesCollection.Add
        ChtObj.Chart.SeriesCollection (2).Values = ActiveSheet.Range („E$771: $E$1475“)
        ChtObj.Chart.SeriesCollection (2).MarkerForegroundColorIndex = 1
        ChtObj.Chart.SeriesCollection (2).MarkerBackgroundColorIndex = 3
        ChrtObj.Chart.SeriesCollection.Add
        ChtObj.Chart.SeriesCollection (3).Values = ActiveSheet.Range („I$771: $I$1475“)
        ChtObj.Chart.SeriesCollection (3).MarkerForegroundColorIndex = 1
        ChtObj.Chart.SeriesCollection (3).MarkerBackgroundColorIndex = 9
        ChtObj.Visible = richten aus
    Beenden wenn
    Beenden wenn
    Beenden wenn
    Beenden wenn
    Beenden wenn
    Beenden wenn
    ActiveSheet.PivotTables („PivotTable3“) .PivotCache.Refresh

Application.ScreenUpdating = richten aus

Enden-Unterseeboot

Antwort : Reihe für ein Excel-Diagramm using VBA hinzufügen und entfernend

auch mit Blöcken hilft, den überflüssigen Code zu verringern, hoffen, dass dieses nützlich ist
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
Allgemeines VorUpdateChart ()
  
    Schwaches ChtObj als ChartObject
    Schwaches PriceType als lang
    ChtObj = ActiveSheet.ChartObjects einstellen (1)
      
    Application.ScreenUpdating = falsch
      
    PriceType = ActiveSheet.Cells (13, 20). Wert
      
    Wenn PriceType = 1 dann
        Mit ChtObj.Chart.SeriesCollection (1)
            . Werte = ActiveSheet.Range („771: 1475“)
            .MarkerBackgroundColorIndex = 1
            .MarkerBackgroundColorIndex = 4
        Ende mit
        ChtObj.Visible = ausrichten en
    ElseIf PriceType = 2 dann
        Mit ChtObj.Chart.SeriesCollection (1)
            . Werte = ActiveSheet.Range („$D$771: $D$1475“)
            .MarkerForegroundColorIndex = 1
            .MarkerBackgroundColorIndex = 5
        Ende mit
        ChtObj.Visible = ausrichten en
    ElseIf PriceType = 3 dann
        Mit ChtObj.Chart.SeriesCollection (1)
            . Werte = ActiveSheet.Range („$E$771: $E$1475“)
            .MarkerForegroundColorIndex = 1
            .MarkerBackgroundColorIndex = 3
        Ende mit
        ChtObj.Visible = ausrichten en
    ElseIf PriceType = 4 dann
        Mit ChtObj.Chart.SeriesCollection (1)
            . Werte = ActiveSheet.Range („$I$771: $I$1475“)
            .MarkerForegroundColorIndex = 1
            .MarkerBackgroundColorIndex = 9
        Ende mit
        ChtObj.Visible = ausrichten en
    ElseIf PriceType = 5 dann
        Mit ChtObj.Chart.SeriesCollection (1)
            . Werte = ActiveSheet.Range („$F$771: $F$1475“)
            .MarkerForegroundColorIndex = 1
            .MarkerBackgroundColorIndex = 7
        Ende mit
        ChtObj.Visible = ausrichten en
    ElseIf PriceType = 6 dann
        Mit ChtObj.Chart.SeriesCollection (1)
            . Werte = ActiveSheet.Range („D$771: $D$1475“)
            .MarkerForegroundColorIndex = 1
            .MarkerBackgroundColorIndex = 5
        Ende mit
        ActiveChart.SeriesCollection.NewSeries
        Mit ChtObj.Chart.SeriesCollection (2)
            . Werte = ActiveSheet.Range („E$771: $E$1475“)
            .MarkerForegroundColorIndex = 1
            .MarkerBackgroundColorIndex = 3
        Ende mit
        ActiveChart.SeriesCollection.NewSeries
        Mit ChtObj.Chart.SeriesCollection (3)
            . Werte = ActiveSheet.Range („I$771: $I$1475“)
            .MarkerForegroundColorIndex = 1
            .MarkerBackgroundColorIndex = 9
        Ende mit
        ChtObj.Visible = ausrichten en
    Beenden wenn
    ActiveSheet.PivotTables („PivotTable3“) .PivotCache.Refresh
  
Application.ScreenUpdating = ausrichten en
  
Enden-Unterseeboot
Weitere Lösungen  
 
programming4us programming4us