Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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 chart dynamisch erstellen

vba chart dynamisch erstellen
16.11.2016 16:38:46
auer
Hallo Leute,
ich brauche eure Hilfe.
ich habe mehrere Tabellenblätter (20 insgesamt) in Excel. Die letzten 6 sind für mich aber nur relevant. Diese habe ich in ein Array abgespeichert "MyArray" und mit den Namen der 6 Tabellenblätter beschrieben. Die Spalte A und Zeile 1 der 6 Tabellenblätter sind immer gleich. Spalte A enthält Namen zu Fahrzeugkomponenten. Zeile 1 soll später im Diagramm immer die x-Achse sein. Spalte B Zeile 1 enthält "Basis" und der Rest der Zeile 1 sind die Entwicklungsstufen (bis Spalte N).
Für jede Komponente in Spalte A kann es Daten geben oder nicht. Also z.b. Zu Komponente 1 kann ich im Letzten Tabellenblatt eine DAtenreihe haben aber im Vorletzten zum Beispiel nicht. Die Aufgabe ist zu alle 63 Fahrzeugkomponenten zu überprüfen ob in Spalte B der jeweiligen Zeile Daten drin sind und dann anhand der Zeile ein Diagramm zu erstellen.
Was bis jetzt geht:
- Anhand von einem Tabellenblatt (unabhängig der obigen 6 enthält aber dieselbe Spalte A) ermittle ich die Zeile in der die Fahrzeugkomponenten in den letzten 6 Spalten vorkommt. (z.b. die erste Komponente soll in Zeile 51 sein).
- ich kann den Wert in Zeile 51 Spalte B überprüfen, ob Daten vorhanden sind.
- Jetzt soll ein neues Tabellenblatt angelegt werden, der Namen des Tabellenblatts geändert werden und anhand der Datenreihe ein Diagramm erstellt werden und in PP kopiert werden. (PP krieg ich wieder selbst hin) und danach zum nächste wichtigen Tabellenblatt hüpfen und überprüfen ob Daten zu der Fahrzeugkomponente da sind und das nächste diagramm erstellen.
Mein Problem ist, dass ich den Zeilenwert (hier 51) in einer Variable abspeicher, da dieser ja bei jedem durchlauf sich variiert.
ich bekomme hin das sich ein neues Tabellenblatt erstellt, der name geändert wird, sogar das sich ein Diagramm erstellt. Habe aber Probleme mit dem auswählen der Datenreihe und der Skalierung der Y-Achse.
Hier ein Ausschnit aus meinem Code bis jetzt der das Diagramm erstellt:
For i = 0 To (Laenge - 1)
'MsgBox (MyArray(i))
Sheets(MyArray(i)).Select
tmpCellValue = Cells(currRow, 2)
'if empty next CPS
If Sheets(MyArray(i)).Cells(currRow, 2).value "" Then
'MsgBox (tmpCellValue)
'Create a new Worksheet
Set wsNew = Worksheets.Add 'saving chart later
wsNew.Name = "newSheet" 'needed later for selecting
'safe new name
tmp_str_CPS = Sheets(MyArray(i)).Cells(currRow, 1).value 'CPS name
Sheets(MyArray(i)).Select
tmp_str_table = tmp_str_CPS & "-" & ActiveSheet.Name
'rename the new excel sheet (TEST)
wsNew.Name = tmp_str_CPS
wsNew.Name = tmp_str_table
'cut string of name from the sheet
tmp_str_newName = checkName(tmp_str_table)
'rename and move the worksheet to the end
With wsNew
.Name = tmp_str_newName
.Move After:=Sheets(Sheets.Count)
End With
'Make Chart over the line
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = tmp_str_CPS
ActiveChart.Axes(xlValue).Select
ActiveChart.SeriesCollection(1).XValues = "=" & MyArray(i) & "!$B$1:$N$1"
'ActiveChart.SeriesCollection(1).Values = "=" & MyArray(i) & "!$B$" & currRow & ":$N$" & currRow (? was ist hier falsch)
With ActiveChart.Axes(xlValue)
.MaximumScale = ActiveSheet.Range() (? wie geht der Befehl)
.MinimumScale = 0
End With
tmp_chart = ActiveChart.ChartArea.Select
End If
Next
Next
Mein Problem seh ich dass ich bei Values sowas wie folgendes erwarte "'=CPS_Asw1_I_Stufe!$B$51:$N$51". Aber das erste ist quasi der Tabellenblattname den ich durchiteriere, und die "51" ist die variable Zeile die sich ändert pro Fahrzeugkomponente. Aber mit meinem Versuch oben funktioniert das nicht. keine Ahnung wie ich das hinbekommen soll.
Vielen Dank für die Hilfe
Gruß
Markus
PS. Bin nen VBA Laie. ich programmier das erst seid einer Woche und google mich so durch.

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba chart dynamisch erstellen
16.11.2016 16:46:57
Bastian
Hey auer
Lade mal eine bsp datei mit daten hoch dann kann man das einfacher auf dein problem an passen
Gruß Basti
Anzeige

20 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige