Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1492to1496
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

Diagrammerstellung mittels VBA

Diagrammerstellung mittels VBA
18.05.2016 12:42:27
Erik
Hallo,
ich habe eine Datei, in der sich Daten befinden, aus welchen Diagramme erstellt werden sollen. Jede Zeile stellt einen eigenen Datensatz dar, es gibt ca. 100 solcher Zeilen in der Datei. Ein Diagramm mittels VBA zu erstellen habe ich bereits geschafft und sieht so aus:
Sub Diagramm_erstellen()
Charts.Add.Move After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Worksheets("CBS").Range("A4")
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "Level CBS"
ActiveChart.SeriesCollection(1).Values = "=CBS!B4,CBS!D4,CBS!F4,CBS!H4"
End Sub
Hierbei sind die Bereiche, aus denen die Werte gezogen werden, 'fest verdrahtet'. Nun ist es aber so, dass ich auswählen möchte, für welche Zeilen jeweils ein Diagramm erstellt werden soll mit folgenden (beispielhaften) Wahlmöglichkeiten:
- alle
- Zeile 4
- Zeile 4 bis 7
- Zeile 4 bis 7 und Zeile 11
Ich denke, ich brauche vorher ein Auswahlfenster und eine Schleife, in der dann das Makro läuft. Weiterhin denke ich, dass dann die nötigen Wertebereiche in eine Variable geschrieben werden müssen.
Genau das jedoch ist mein Problem, da hört es dann mit meinen Kenntnissen auf.
Über Hilfe und Anregungen würde ich mich sehr freuen.
Danke, Erik

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagrammerstellung mittels VBA
18.05.2016 14:25:39
Beverly
Hi Erik,
lade bitte eine Beispielmappe hoch.


AW: Diagrammerstellung mittels VBA
18.05.2016 16:13:04
Beverly
Hi Erik,
folgender Vorschlag:
1. Diagramm erstellen für alle Datensätze der Tabelle CBS
Sub DiaErstellen()
Dim lngZeile As Long
Dim rngBereich As Range
Dim chrDia As Chart
Dim wksTab1 As Worksheet
Set wksTab1 = Worksheets("CBS")
For Each chrDia In Charts
If chrDia.Name = "Dia-CBS" Then
Application.DisplayAlerts = False
chrDia.Delete
Application.DisplayAlerts = True
End If
Next chrDia
With Charts.Add
.SetSourceData Source:=wksTab1.Range("A1")
.Name = "Dia-CBS"
For lngZeile = 4 To 85
With .SeriesCollection.NewSeries
Set rngBereich = Union(wksTab1.Cells(lngZeile, 2), wksTab1.Cells(lngZeile, 4),  _
wksTab1.Cells(lngZeile, 6), wksTab1.Cells(lngZeile, 8))
.Values = rngBereich
.Name = wksTab1.Cells(lngZeile, 1) & " Level CBS"
.ChartType = xlColumnClustered
.AxisGroup = 1
End With
Next lngZeile
For lngZeile = 4 To 85
With .SeriesCollection.NewSeries
Set rngBereich = Union(wksTab1.Cells(lngZeile, 3), wksTab1.Cells(lngZeile, 5),  _
wksTab1.Cells(lngZeile, 7), wksTab1.Cells(lngZeile, 9))
.Values = rngBereich
.Name = wksTab1.Cells(lngZeile, 1) & " pLA CBS [%]"
.ChartType = xlLine
.Smooth = True
.AxisGroup = 2
End With
Next lngZeile
End With
End Sub

2. in Tabelle CBS in Spalte A alle Zellen markieren, für die Datenreihen im Diagramm angezeigt werden sollen und alle anderen ausblenden - dadurch werden im Diagramm nur die ausgewählten angezeigt
Sub EinzelneAuswaehlen()
Dim rngZelle As Range
For Each rngZelle In Range("A4:A85")
If Intersect(rngZelle, Selection) Is Nothing Then
If rngZelle.Row > 3 And rngZelle.Row 

3. alle Zeilen wieder einblenden damit die nächsten ausgewählt werden können
Sub AlleEinblenden()
Cells.EntireRow.Hidden = False
End Sub
https://www.herber.de/bbs/user/105629.xls


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige