Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<
Microsoft Office 2003-2019 => Excel => Thema gestartet von: Tunca am Januar 25, 2012, 08:49:56 Vormittag
-
Hi,
bin hier grad echt am verzweifeln weil ich nichts finde, was so richtig zu meinem Problem passt. Das sieht nämlich so aus:
Habe 200 txt Dateien mit mit Datenreihen, Inhalt:
0;0,0004;0,0409
1;0,0182;0,0331
2;0,0369;0,0409.... usw.
wobei die erste Zahl nur zählt, die zweite mein x-Wert sein soll und die dritte mein y-Wert. Aus jeder Datenreihe sol nun ein Graph entstehen. Die Dateinamen sind 1.txt, 2.txt, 3.txt usw...
Manuell kein Problem: Text importieren, mit Semikolon trennen, auf Diagrammblatt klicken und Daten auswählen, auf dem Datenblatt 3 Spalten nach rechts rutschen und das gleiche von vorn.... macht bei 200+ Datenreihen die ich immer wieder machen soll leider keinen Sinn.
Habe auch schon versucht mit relativer Aufzeichnung eines Makros. Da ist allerdings das Problem dass er immer dieselben Datenfelder für die Diagramme benutzt, und nicht wie gewünscht 3 Spalten nach rechts geht....
Versuche schon seit 3 Tagen vergeblich, mich in VB einzuarbeiten... wäre euch echt dankbar wenn ihr mir einen Schubs geben könntet mit einem Code den ich hier anwenden bzw. nachvollziehen kann... DANKE :)))
-
Hi,
dann solltest du wenigsten mal den aufgezeichneten Code posten, dann könnte man vielleicht aus der statischen Bereichszuweisung eine dynamische machen.
Bis später,
Karin
-
Hier mal ein kleineres Beispiel aus der Makroaufzeichnung: Meine Ausgangszelle markiert, dann auf das bestehende Diagramm geklickt -> Daten auswählen, hinzufügen -> Diagrammname: 1 runter um den Inhalt aus der Zelle zu nehmen --> Datenbereich x: 4 runter 1rechts zum positionieren, dann 10 nach unten markiert --> analog mit y Datrenbereich gemacht -> OK
Das wäre ein Makro für eine Kurve, aber ich wär auch bereit 200 mal zu klicken, imernoch viel weniger arbeit als so.
Dann gibt er mir diesen Code raus.
Sub Makro7()
'
' Makro7 Makro
'
ActiveSheet.ChartObjects("Diagramm 3").Activate
ActiveSheet.ChartObjects("Diagramm 3").Activate
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "='Daten'!$H$2"
ActiveChart.SeriesCollection(2).XValues = "='Daten'!$I$10:$I$20"
ActiveChart.SeriesCollection(2).Values = "='Daten'!$J$10:$J$20"
End Sub
Er macht nicht so wie ichs gesagt hatte den Datenbereich relativ zur ausgangsposition,. sondern eben fix für I10-I20. Da nsteckt der Wurm drin und ich komm nicht weiter.
Danke
-
Hi,
und wo befinden sich die Daten für die nächste(n) Datenreihe(n)? Dieser Aufbau: in H2 der Datenreihenname, in I10:I20 die X-Werte und in J10:J20 die Y-Werte widerspricht aber völlig deinen Angaben aus dem Eröffnungsbeitrag - dort beginnen die Daten in Zeile 1 und einen Namen für die Datenreihe gibt es überhaupt nicht. Ohne den tatsächlichen Aufbau deiner Werte zu kennen, kann man da nicht viel helfen - lade doch mal eine Beispielmappte mit einigen Daten hoch.
Bis später,
Karin
-
den Datenreihennamen könnte man auch weglassen. Die nächsten x und y werte sind 3 Spalten weiter links. und die nächsten wieder 3 Spalten weiter links usw.
hier eine etwas kleiner Auszug. "Weg" sollen für jedes Diagram jeweils meine x- und "Kraft" meine y-Werte sein. "Nr" ist irrelevant und nur da, weil es auch in der Textdatei vorkommt:
Data block Data block Data block
Nr Weg/[mm]Kraft/[N] Nr Weg/[mm]Kraft/[N] Nr Weg/[mm] Kraft/[N]
0 0,0004 0,0409 0 0 0 0 0 -0,0565
1 0,0182 0,0331 1 0,0071 0,0175 1 0,0121 -0,0448
2 0,0369 0,0409 2 0,029 0,0643 2 0,0323 -0,0253
3 0,0583 0,0507 3 0,0498 0,0292 3 0,0542 -0,0643
4 0,0791 0,0623 4 0,0688 0,0136 4 0,0737 -0,0877
5 0,0984 0,0526 5 0,0894 0,0195 5 0,0934 -0,0974
6 0,119 0,0195 6 0,1105 0,0234 6 0,1146 -0,074
7 0,1398 0,0175 7 0,1301 0,0234 7 0,1348 -0,0896
8 0,1596 0,0312 8 0,1503 -0,0019 8 0,1546 -0,0429
9 0,1799 0,0039 9 0,1711 0,0019 9 0,1753 -0,0409
10 0,2006 0,0136 10 0,1912 0,0097 10 0,1957 -0,0468
11 0,2207 0,0214 11 0,2114 0,0214 11 0,2157 -0,0312
12 0,2409 0,0233 12 0,2319 0,0487 12 0,2362 -0,039
13 0,2614 0,0097 13 0,2522 0,039 13 0,2566 -0,0487
14 0,2817 0,0214 14 0,2724 0,0078 14 0,2766 -0,0409
15 0,3018 0,0487 15 0,2928 0,0214 15 0,2971 -0,0253
16 0,3223 0,0234 16 0,3131 0,0292 16 0,3175 0,0273
17 0,3426 0,0039 17 0,3332 0,0565 17 0,3376 0,6955
18 0,3628 -0,0078 18 0,3537 0,0604 18 0,358 1,4182
19 0,3832 -0,008 19 0,374 0,0273 19 0,3784 1,3423
20 0,4035 -0,0175 20 0,3942 -0,0078 20 0,3986 1,0306
Und jeden Datenblock will ich eben von einer Textdatei auslesen
-
den Button zum Dateien hochladen habe ich jetzt leider nicht gefunden, aber das tuts hofentlich auch... danke
-
Hi,
Sub DiaBestuecken()
Dim intSpalte As Integer
For intSpalte = 1 To IIf(IsEmpty(Cells(3, Columns.Count)), Cells(3, Columns.Count).End(xlToLeft).Column, Columns.Count) Step 3
With ActiveSheet.ChartObjects(1).Chart
.SeriesCollection.NewSeries
With .SeriesCollection(.SeriesCollection.Count)
.XValues = Range(Cells(3, intSpalte + 1), Cells(23, intSpalte + 1))
.Values = Range(Cells(3, intSpalte + 2), Cells(23, intSpalte + 2))
End With
End With
Next intSpalte
End SubBis später,
Karin
-
HAMMMMER!!!!!
Musste noch n paar Zahlen anpassen und es funktioniert perfekt... DANKESCHÖÖÖN :D
vor allem is es ja gleich so gemacht, dass er gleich alles auf einmal macht, ich könnt dich knutschen :-*
DANKE!!