Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

eingebettetes Diagramm mit array füttern

eingebettetes Diagramm mit array füttern
13.12.2005 14:56:56
Alex
Hallo Leute,
Ich hab folgendes Problem: ich möchte mittels eines arrays ein XY Diagramm erzeugen, dieses Array füttere ich mit daten aus anderen Blättern , dass funktioniert alles super und ich schreibe dieses Array auch in mein gerade aktives Blatt, gleichzeitig möchte ich diese daten aber in einem Diagramm darstellen, was mit einfachen arrays funktioniert aber mit meinem dynamisch erstellten einfach nicht gelingen will.
es kommt immer ein laufzeitfehler 1004 dass die x-Value eigenschaft des Series objektes nicht festgelegt werden kann.
vielleicht kann mir ja wer weiter helfen, die daten wieder extra irgendwohinzuschreiben und dann erst das diagramm zu erzeugen kan ichnicht gebrauchen weil ich später das diagramm auch in meine userformen einbinden will ohne weitere zellen zu füllen.
ps der code ist mit ein paar überflüssigen berechnungen und typumwandlungen gespickt, aber was versucht man nicht alles in seiner not.
hier der code zum verständnis des problems, der Fehler tritt dann in den untersten zeilen beim Graph-erzeugen auf.

Private Sub Tabelleerzeugen()
Dim Zeilengesamt As Integer
Dim i
ActiveSheet.Columns(29).Delete
ActiveSheet.Columns(30).Delete
ActiveSheet.Columns(31).Delete
ActiveSheet.Columns(32).Delete
ActiveSheet.Columns(33).Delete
ActiveSheet.Cells(1, 29).Value = "t"
ActiveSheet.Cells(1, 30).Value = "s"
ActiveSheet.Cells(1, 31).Value = "v"
ActiveSheet.Cells(1, 32).Value = "a"
ActiveSheet.Cells(1, 33).Value = "r"
Zeilengesamt = 0
For n = 1 To Übergängegesamt
Zeilengesamt = Zeilengesamt + mat(n, Punkte)
Next n
ReDim taballt(Zeilengesamt - 1, 0)
ReDim taballs(Zeilengesamt - 1, 0)
ReDim taballv(Zeilengesamt - 1, 0)
ReDim taballa(Zeilengesamt - 1, 0)
ReDim taballr(Zeilengesamt - 1, 0)
j = 1
i = 0
For j = 1 To Übergängegesamt
k = 1
For k = 1 To mat(j, Punkte)
taballt(i, 0) = (Worksheets(mat(j, Bewgesetz)).Cells(k + 1, 14))
taballs(i, 0) = (Worksheets(mat(j, Bewgesetz)).Cells(k + 1, 16))
taballv(i, 0) = (Worksheets(mat(j, Bewgesetz)).Cells(k + 1, 17))
taballa(i, 0) = (Worksheets(mat(j, Bewgesetz)).Cells(k + 1, 18))
taballr(i, 0) = (Worksheets(mat(j, Bewgesetz)).Cells(k + 1, 19))
i = i + 1
Next k
i = i - 1
Next j
For i = 0 To Zeilengesamt - 1
ActiveSheet.Cells(i + 2, 29) = taballt(i, 0)
ActiveSheet.Cells(i + 2, 30) = taballs(i, 0)
ActiveSheet.Cells(i + 2, 31) = taballv(i, 0)
ActiveSheet.Cells(i + 2, 32) = taballa(i, 0)
ActiveSheet.Cells(i + 2, 33) = taballr(i, 0)
Next i
Dim objChartObject As ChartObject
Set objChartObject = ActiveSheet.ChartObjects.Add(10, 80, 500, 180)
With objChartObject
.Name = "Weg-Zeitdiagramm"
With .Chart
.ChartType = xlXYScatterSmooth
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = taballt
.SeriesCollection(1).Values = taballs
.Legend.Delete
End With
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eingebettetes Diagramm mit array füttern
13.12.2005 15:50:03
Peter W
Servus,
das begreife ich nicht, kann logischerweisse dein Bsp. nicht nachbauen, aber bei mir funtzt das so. Das einzige Prob das ich beim Testen hatte war bei String Werten ?


      
Option Explicit
Option Base 1
Sub Makro1()
Dim myarrX, myarr
Dim lzeile As Long
Dim wks As Worksheet
Set wks = ActiveSheet
    
With wks
        lzeile = .Cells(.Rows.Count, 1).End(xlUp).Row
        
ReDim myarrX(lzeile)
        
ReDim myarr(lzeile)
            myarrX = .Range("A1:A" & lzeile)
            myarr = .Range("B1:B" & lzeile)
    
End With
    
    Charts.Add
    
With ActiveChart
        .ChartType = xlXYScatterSmooth
        .SeriesCollection.NewSeries
            .SeriesCollection(1).XValues = myarrX
            .SeriesCollection(1).Values = myarr
        .Location where:=xlLocationAsObject, Name:=wks.Name
    
End With
End Sub 


MfG Peter
Anzeige
AW: eingebettetes Diagramm mit array füttern
13.12.2005 16:20:16
Alex
Vielen Dank für die schnelle Hilfe Peter,
Dein code funktioniert bei mir genau so wie wenn ich meinen mit kleinen arrays füttere,
doch sobald ich auf meinen zusammengewürfelten-array zurückgreife geht xvalue nicht mehr,
komisch,
wegen der String-werte keine sorge ich leg dir gleich die werte bei,
nur dezimalzahlen.
wollte dann mal sehen ob ich es zumindest über umwege schaffe, kein problem, dabei erzeuge ich die tabelle ja aus dem array.
werte
0 0
0.052631579 0.000954053
0.105263158 0.007508169
0.157894737 0.024655554
0.210526316 0.056241472
0.263157895 0.104546546
0.315789474 0.170039622
0.368421053 0.251326955
0.421052632 0.345303251
0.473684211 0.447488168
0.526315789 0.552511832
0.578947368 0.654696749
0.631578947 0.748673045
0.684210526 0.829960378
0.736842105 0.895453454
0.789473684 0.943758528
0.842105263 0.975344446
0.894736842 0.992491831
0.947368421 0.999045947
1 1
1.052631579 1.000352177
1.105263158 1.00277891
1.157894737 1.009166
1.210526316 1.021038901
1.263157895 1.039423931
1.315789474 1.064765231
1.368421053 1.097087568
1.421052632 1.136297638
1.473684211 1.182231998
1.526315789 1.234658761
1.578947368 1.293279955
1.631578947 1.35773456
1.684210526 1.427602176
1.736842105 1.502407308
1.789473684 1.581624204
1.842105263 1.664682206
1.894736842 1.750971556
1.947368421 1.839849609
2 1.930647368
über die zellen der tabelle funktionierts
code für zellen
Dim objChartObject As ChartObject
Set objChartObject = ActiveSheet.ChartObjects.Add(10, 80, 500, 180)
With objChartObject
.Name = "Weg-Zeitdiagramm"
With .Chart
.ChartType = xlXYScatterSmooth
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = ActiveSheet.Range(Cells(2, 29), Cells(2 + _ Zeilengesamt - 1, 29))
.SeriesCollection(1).Values = ActiveSheet.Range(Cells(2, 30), Cells(2 + _ Zeilengesamt - 1, 30))
.Legend.Delete
End With
End With
wenn du irgendeine idee hättest woran es liegen könnte dass es nicht direkt aus dem array funktioniert wär ich dir sehr dankbar, datentypen sind richtig und es befinden sich keine Leer-Felder oder sonst irgendwas falsches im array (bzw in den zwei arays).
grüße alex
Anzeige
AW: eingebettetes Diagramm mit array füttern
13.12.2005 16:40:09
Peter W
Servus,
hab jetzt leider keine Zeit mehr, stell die frage mal auf offen.
Bin auch ehrlich gesagt nicht so bewandert mit Diagrammen, schaus mir aber morgen früh nochmal an wenn keiner geantwortet hat. Sry.
MfG Peter
AW: eingebettetes Diagramm mit array füttern
13.12.2005 17:12:33
Herbert
Hi,
die zeichenlänge im Array ist auf 250 beschränkt.
mfg herbert
AW: eingebettetes Diagramm mit array füttern
14.12.2005 08:49:54
Alex
hab jetzt meine werte des array noch mal genau unter die lupe genommen und bin drauf gekommen dass ich ein leerfeld am schluß hatte.
dass hab ich jetzt behoben und es funktioniert bis zu einer anzahl von 16 datenfeldern im array, darüber hinaus läßt sich nix machen. (ab 17 feldern wieder die meldung dass sich xvalue nicht festlegen läßt)
Herbert hat geschrieben dass die Zeichenlänge im array auf 250 beschränkt ist, dass ist aber nicht mein problem da ich immer Double-Werte bearbeite
mein array hat zeitweise so um die 600 datenfelder
bitte um Hilfe und vorschläge welche strategien es noch gibt um ein xy-diagramm aus einem array zu erzeugen ohne werte in ein blatt zu schreiben
Danke Alex
Anzeige
AW: eingebettetes Diagramm mit array füttern
13.12.2005 18:05:11
Dan
Hallo, der Code sollte funktionieren, vorausgesetzt die beiden arrays sind mit richtigen Werten gefuellt. Das Problem liegt wahrscheinlich in dem Inhalt der Arrays. Gruss Dan cz.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige