Hallo zusammen,
ich versuche gerade ein kleines VBA zu schreiben, dass Grafiken nach automatischem Abfragen von Daten auf Websites aktualisiert.
Dazu habe ich eine Tabelle, die automatisch aktualisiert und erweitert wird, sobald neue Daten vorhanden sind.
Ich suche mir für die jeweilige Grafik mittels .Match, die benötigte Spalte.
Dim blatt As String
Dim myChart As ChartObject
Dim sText As String
Dim iCol As Integer
blatt = "DATEN"
For Each myChart In Sheets(blatt).ChartObjects
myChart.Activate
sText = myChart.Name
iCol = Application.WorksheetFunction.Match(sText, Cells(1, 1).EntireRow, False)
ActiveChart.FullSeriesCollection(1).Values = Worksheets(blatt).Range(Cells(2, iCol), Cells(Sheets(blatt).UsedRange.Rows.Count, iCol))
ActiveChart.FullSeriesCollection(1).XValues = "=" & blatt & "!$A$2" & ":$A$" & Sheets(blatt).UsedRange.Rows.Count
Next myChart
Funktioniert auch so. Vielleicht ist es nicht der eleganteste Weg, da ich mich in VBA aber wirklich gar nicht auskenne bin ich froh, dass es so funktioniert :-D
Nun werden die Daten immer mehr und ich möchte die Grafiken in andere Worksheets auslagern. Leider habe ich keine Lösung gefunden,
wie ich mein Marko anpassen könnte. Angenommen die Werte stehen in einem Worksheet namens "DATEN" und die Grafiken sollen in ein Blatt mit dem Titel "GRAPH".
Ist es irgendwie möglich obiges Makro anzupassen?
Nach meinem Verständnis müsste man nur die Zeilen beginnend mit iCol und ActiveChart anpassen?
Wobei das größte Problem das Matching wäre. Die beiden anderen sind lediglich zum auslesen der Werte zuständig.
Kann mir hier jemand weiterhelfen? Oder geht es schlicht nicht? Meine Vermutung (wie gesagt: ohne Vorkenntnisse): WorksheetFunction kann man nur in einem Arbeitsblatt verwenden? Gibt es eine Alternative?
Viele Grüße
|