Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1780to1784
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Diagramm

VBA Diagramm
04.09.2020 04:35:41
Charly
Hallo Community
Ich probiere gerade ein wenig mit Diagrammen.
Bitte nicht lachen wenn ihr den Code seht.
Warscheinlich macht man das alles ganz anders.
Es funktioniert alles wie es soll, bis auf eine Kleinigkeit.
Das Liniendiagramm funktioniert wie gewünscht.
Das Problem ist das Säulendiagramm.
Wenn man nach dem öffnen der Datei in C7 (Values) von Cases auf Deaths (oder umgekehrt) wechselt, sind die Säulen fast weiß.
Nach nochmaligen wechseln oder Änderungen in C3-C5-C6 werden die richtig gefärbt.
Leider kann ich mit meinen bescheidenen VBA (Kenntnissen?) den Grund dafür nicht erkennen.
Also kann ichs auch nicht abstellen und das nervt mich.
Ich hoffe ihr könnt mir helfen.
Vielen Dank vorab.
Gruss Charly
https://www.herber.de/bbs/user/140034.xlsb

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Diagramm
04.09.2020 12:18:41
Beverly
Hi Charly,
kann ich nicht nachvollziehen.
Deinen Code kann man aber wesentlich unkomplizierter schreiben - vielleicht hilft das ja bei dir.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ch_1 As Chart: Set Ch_1 = Tab1.ChartObjects("Crt_1").Chart
Dim Ch_2 As Chart: Set Ch_2 = Tab1.ChartObjects("Crt_2").Chart
Application.ScreenUpdating = False
If Not Intersect(Target, Range("C3,C5:C7")) Is Nothing Then
With Tab1.ListObjects("Data")
.Range.AutoFilter Field:=1, Criteria1:=">=" & CLng(Range("C5")), Operator:=xlAnd
.Range.AutoFilter Field:=2, Criteria1:=Range("C3")
End With
With Ch_1
.Axes(xlCategory).MajorUnit = Range("C6")
.ChartTitle.Text = "SARS-CoV-2 (COVID-19)  -  " & Range("c3") & "  -   " & _
Range("c7") & "/Day"
With .SeriesCollection(1)
If Range("C7") = "Cases" Then
.Values = Range("Data[Cases]")      '

Den X-Wertebereich für beide Diagramme musst du nicht jedesmal neu zuweisen - der bleibt doch gleich, es müssen nur die Bereiche für die Y-Werte neu zgewiesen werden. Dasselbe trifft für den Gradienten der Füllung beim Säulendiagramm und die Strichstärke beim Liniendiagramm zu - die ändern sich auch nicht.


Anzeige
Vielen Dank Karin
05.09.2020 07:51:57
Charly

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige