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

Per VBA mehrere Diagramme ausgeben

Per VBA mehrere Diagramme ausgeben
28.06.2017 08:38:40
Luftikus
Hallo an alle,
mit wurde in diesem Forum bisher immer sehr gut weitergeholfen. Ich hoffe auch hierbei.
Es geht um Folgende Datei:
https://www.herber.de/bbs/user/114529.xlsm
Wenn ich in Zelle D4 eine Auswahl treffe gibt VBA ein Diagramm mit 4 Kennlien aus. Mein Wunsch ist es die 4 Kennlinien in 4 verschiedenen Diagrammen darzustellen. Kann mir da jemand weiterhelfen?
Vielen Dank schon mal.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Per VBA Diagramm-Bezug ändern
28.06.2017 09:04:50
Beverly
Hi,
dazu musst du erst einmal 4 Diagramme mit je 1 Datenreihe erstellen. Da die Tabellen identisch aufgebaut sind, muss per Code dann einfach nur der Tabellenname im Datenbereich der Diagramme geändert werden.


AW: Per VBA Diagramm-Bezug ändern
28.06.2017 09:21:00
Luftikus
Hallo,
danke für die Antwort schon mal. Aber das Diagramm wird doch via VBA generiert? Meine Kenntnisse sind überschaubar, deswegen verstehe ich es vl. einfach noch nicht gut genug.
Es ist also nicht möglich, dass ich eine AUswahl in Zelle D4 treffe, dass die 4 Kennlinien nicht in einem Diagramm sondern in 4 verschiedenen Diagrammen dargestellt werden?
Das Diagramm sollte nach dem Öffnen vom Benutzer vorerst keine Kennlinie anzeigen.
Gruß
Anzeige
AW: Per VBA Diagramm-Bezug ändern
28.06.2017 09:32:48
Beverly
Hi,
das Diagramm in deiner Mappe wird nicht per VBA generiert sondern ist bereits leer vorhanden - das siehst du, wenn du mit dem Cursor in den Bereich der Zellen ab E7 klickst. Und diesem leeren Diagramm werden nur die 4 Datenreihen zugewiesen
Sicher ist es möglich, die 4 Kennlinien in 4 Diagrammen anzuzeigen, aber der einfachste Weg dafür ist, wenn die Diagramme bereits leer (wie in deiner Mappe das 1 Diagramm) vorhanden sind und ihnen dann für je 1 Datenreihe der Bereich zugewiesen wird (wie derzeit 4 Bereiche dem 1 Diagramm).


Anzeige
AW: Per VBA Diagramm-Bezug ändern
28.06.2017 09:42:19
Luftikus
Ah nun verstehe ich es besser. Super! Danke schon mal. Aber weißt du auch wie ich das dann VBA-mäßig umsetze wenn ich 4 Diagramme angelegt habe?
Gruß
AW: Per VBA Diagramm-Bezug ändern
28.06.2017 10:50:08
Beverly
Hi,
selbstverständlich weiß ich das, aber dazu müsstest du genau beschreiben, was in welchem Diagramm dargestellt werden soll. Außerdem müsstest du die Diagrammnamen nennen.


AW: Per VBA Diagramm-Bezug ändern
28.06.2017 11:33:20
Luftikus
Okay :) Das soll kein Problem sein. Also, die Diagramme sollen heißen:
1. FCD in Diagramm 1
2. FDE in Diagramm 2
3. Leistung in Diagramm 3
4. Arbeitspunkt in Diagramm 4
Reicht das?
Danke schon mal.
Anzeige
AW: Per VBA Diagramm-Bezug ändern
28.06.2017 15:28:07
Beverly
Beachte, dass die Diagramme tatsächlich so heißen müssen wie du sie oben aufgelistet hast.
Option Explicit
Dim blnAusfuehren As Boolean
Dim lngLetzte As Long
Private Sub Worksheet_Change(ByVal Target As Range)
If blnAusfuehren = False Then
If Not Intersect(Target, Columns(4).SpecialCells(xlCellTypeAllValidation)) Is Nothing  _
Then
If Target  "" Then DiaAktualisieren (Target.Value)
End If
End If
End Sub
Sub DiaAktualisieren(strTabelle As String)
Dim lngReihen As Long
Dim objChart As ChartObject
Dim strBereich As String
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 4)), Cells(Rows.Count, 4).End(xlUp).Row, Rows. _
Count)
For Each objChart In ActiveSheet.ChartObjects
Select Case objChart.Name
Case "FCD"
strBereich = "E8:E32"
Case "FDE"
strBereich = "I8:I32"
Case "Leistung"
strBereich = "G8:G32"
Case "Arbeitspunkt"
strBereich = "K8:K32"
End Select
With objChart.Chart
For lngReihen = .SeriesCollection.Count To 1 Step -1
.SeriesCollection(lngReihen).Delete
Next lngReihen
If strTabelle  "keine Auswahl" Then
With .SeriesCollection.NewSeries
.XValues = Worksheets(strTabelle).Range("F8:F32")
.Values = Worksheets(strTabelle).Range(strBereich)
End With
End If
End With
Next objChart
End Sub



Anzeige
AW: Per VBA Diagramm-Bezug ändern
28.06.2017 15:56:47
Luftikus
Danke für den Ansatz. Hast du das bereits mal probiert? Irgendwie bekomme ich es noch nicht zum laufen.
Bei " .Values = Worksheets(strTabelle).Range(strBereich)"
Bekomme ich immer die Meldung Anwendungs- oder objektdefinierter Fehler... hm...
AW: Per VBA Diagramm-Bezug ändern
28.06.2017 16:02:45
Beverly
Wenn ich den Code, der nicht ganz unkompliziert ist nicht getestet hätte, hätte ich das entsprechend auch gepostet - du kannst dir also sicher sein, dass er bei mir funktioniert.


AW: Per VBA Diagramm-Bezug ändern
28.06.2017 16:07:25
Luftikus
Mist ich komm nicht drauf warum bei mir nicht. Würdest du mir evtl. auch deine Datei hochladen mit der du es getestet hast? Vl. finde ich dann meinen Fehler.
Vielen lieben Dank schon mal! Wirklich...
Gruß
Anzeige
AW: Per VBA Diagramm-Bezug ändern
28.06.2017 16:46:43
Luftikus
Alles klar. Perfekt, nun habs auch ich geschafft es lauffähig zu bekommen. Das einzige was jetzt nicht merh funktioniert ist dass die Makros trotz Blattschutz ausgeführt werden, aber das bekomme ich selber hin.
Leider kann man nun aber keine Kennlien mehr vergleichen. Ich würde gerne die Kennlinie im Diagramm "FDE" von Tabelle2 und Tabelle3 vergleichen können, sowie die Datei ursprünglich war. Vielleicht habe ich mich auch missverständlich ausgedrückt.
Grüße
Anzeige
AW: Per VBA Diagramm-Bezug ändern
28.06.2017 17:48:26
Beverly
In deiner Mappe aus dem Eröffnungsbeitrag wurden 4 Datenreihen im Diagramm angezeigt und zwar alle von der selben Tabelle, entweder Tabelle3 ODER Tabelle2 und nicht Datenreihen von Tabelle2 UND Tabelle3. Außerdem stellt sich dann die Frage, wozu überhaupt eine Auswahl per Gültigkeitszelle treffen, wenn sowieso alles mit allem verglichen werden soll...


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige