Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1648to1652
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 Diagramme dynamisch an Wertereihe anpassen

VBA Diagramme dynamisch an Wertereihe anpassen
09.10.2018 17:36:00
Kai
Schönen guten Tag liebe Forengemeinde,
ich bin neu hier im Forum und hatte auch bis vor Kurzem mit VBA in Office-Anwendungen leider auch nichts zu tun, daher bin ich absoluter Neuling was VBA-Programmierung angeht...
Ich hab folgendes Problem:
Ich habe eine Excel-Tabelle für den Einkauf von Werkzeugen und Vebrauchsmaterialien erstellt. Diese berechnet mir grob wie lange die noch lagernden Teile reichen und wann eine Bestellung der Teile notwendig ist. Der Materialanzahl soll auch grafisch dargestellt werden. Ich gibt es einen Button mit dem ein neues Teil hinzugefügt werden kann. Es werden automatisch die ersten 7 Zeilen kopiert und unten nochmals eingefügt. Dazu gehört auch eine Grafik. Jetzt würde man natürlich bei dem hinzugefügten die jeweiligen Produktdaten ändern und die entsprechende Grafik soll natürlich ihre Datenreihe vom neuen Teil beziehen und nicht aus der Vorlage (sprich derzeit noch 1. Teil).
Ich bekomme aber leider den Verweis auf die neuen Daten nicht entsprechend hin. Bei jedem kopieren wird ja auch eine neue Grafik erzeugt, die dann fortlaufend in 2er Schritten z.B. "Diagramm 10" etc. heißt, wie bekomme ich das in den VBA-Code, dass dieses nun aktiviert wird und ich auf die neue Datenreihe verweisen kann?
Gibt es eine Funktion mit der man das zuletzt hinzufügte Diagramm aktivieren kann? Habe im Forum dieses hier gefunden : ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Activate" aber damit passiert bei mir gar nichts.
Meine nächste Idee war den Diagrammen eine Variable zuzuweisen, die hochzählt, doch eine Verkettung von Namen und Variable wie in Excel scheint in VBA nicht zu klappen a la "ActiveSheet.ChartObjects("Diagramm" & c).Activate"...
Ich habe die originale Entwurfsdatei angehängt. Hoffe ich habe mich halbwegs verständlich ausgedrückt, aber meine VBA-Kenntnisse sind leider echt rudimentär...
Mein bisheriger nicht vollständig funktionierender Quellcode:
Sub Neues_Bauteil_Klicken()
Dim rngTopLeft As Range
Dim rg As Range
Dim a As Integer
Dim b As Integer
Set rngTopLeft = Cells(Rows.Count, 1).End(xlUp).Offset(6)
Range("A5:CN11").Copy Destination:=rngTopLeft
letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
a = letztezeile - 5
b = letztezeile - 3
Set rg = Range(Cells(a, 40), Cells(b, 92))
ActiveSheet.ChartObjects("Diagramm 10").Activate
ActiveChart.SetSourceData Source:=rg, PlotBy:=xlRows
Set rg = Nothing
End Sub

Haken wie gesagt tut es mit "ActiveSheet.ChartObjects("Diagramm 10").Activate" und der dann damit stattfindenden Zuweisung des Wertebereichs. Schreibe ich manuell "Diagramm 10", Skript ausführen,"Diagramm 12",Skript ausfrühren ... rein funktioniert alles, nur dieses müsste jetzt automatisch ablaufen....
https://www.herber.de/bbs/user/124503.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Diagramme dynamisch an Wertereihe anpassen
09.10.2018 18:18:10
onur

Sub Neues_Bauteil_Klicken()
Dim rngTopLeft As Range
Dim rg As Range
Dim a As Integer
Dim b As Integer
Dim i
i = ActiveSheet.ChartObjects.Count + 1
Set rngTopLeft = Cells(Rows.Count, 1).End(xlUp).Offset(6)
Range("A5:CN11").Copy Destination:=rngTopLeft
letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
a = letztezeile - 5
b = letztezeile - 3
Set rg = Range(Cells(a, 40), Cells(b, 92))
ActiveSheet.ChartObjects(i).Activate
ActiveChart.SetSourceData Source:=rg, PlotBy:=xlRows
Set rg = Nothing
End Sub

AW: VBA Diagramme dynamisch an Wertereihe anpassen
11.10.2018 18:09:53
Kai
Super, danke dir! Hat perfekt geklappt :) Jetzt kann ich die Tabelle endlich weiter bearbeiten und verfeinern.
Gruß
Kai
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige