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

Kleines Problem

Kleines Problem
26.07.2005 16:32:29
Ramon
Hallo nochmal,
mit einer letzten Bitte für heute wende ich mich noch mal an die Experten...folgendes hab ich mir aufzeichnen lassen...
Sheets("Graph_L5").Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=Tot_L5!R12C2:R12C203"
ActiveChart.SeriesCollection(1).Values = "=Tot_L5!R13C2:R13C203"
ActiveChart.SeriesCollection(2).XValues = "=Tot_L5!R25C2:R25C203"
ActiveChart.SeriesCollection(2).Values = "=Tot_L5!R26C2:R26C203"
es handelt sich um das Auswählen einer Graphic und dem Hinzufügen zweier Graphen in diese Graphic...einer wie zu sehen mit den x-Werten in Reihe 12, Spalten 2 bis 203 und den zugehörigen y-Werten in Reihe 13 der selben Spalten.
Der Graph 2 basiert auf Daten aus den Zeilen 25 und 26, wiederum aus den Spalten 2 bis 203.
Wie kann ich das in eine Schleife schreiben? Ziel ist nämlich noch einige Graphen mehr in das Diagramm zeichnen zu lassen...immer wieder mit dem Zeilenabstand 13 und den gleichen Spalten...Hab es selber mal versucht (s.u.-aber nicht lachen) aber läuft nicht...
Vielen Dank im Vorraus, Ramon
Mein Versuch:

Sub Graphic()
Sheets("Graph_L5").Select
Dim i As Integer
For i = 1 To 2
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).XValues = Sheets("Tot_L5").Rows(i * 13 - 1 ).Columns(2 & ":" & 203)
ActiveChart.SeriesCollection(i).Values = Sheets("Tot_L5").Rows(i * 13 ).Columns(2 & ":" & 203)
Next i
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Kleines Problem
26.07.2005 19:48:08
Herbert
hallo Ramon,
die Datenquelle mußt du so schreiben:

Sub Graphic()
With ActiveSheet.ChartObjects(1).Chart
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Sheets("Tot_L5").Range(Cells(1, 2), Cells(1, 203))
.SeriesCollection(1).Values = Sheets("Tot_L5").Range(Cells(2, 2), Cells(2, 203))
End With
End Sub

wenn du weitere Hilfe brauchst, mußt du eine Mustermappe hochladen...
natürlich mit einer genauen Beschreibung in der Mappe...
gruß Herbert
AW: Kleines Problem
27.07.2005 09:33:41
Herbert
probier das einmal:


Option Explicit
Sub Graphic()
Dim sh As Worksheet, drX%, drY%, dr%
Set sh = Sheets("Tot_L5")
Dim As Integer, r%
dr = WorksheetFunction.CountIf(sh.[b2:b1000], ">0")
drX = 12
drY = 13
On Error Resume Next
Application.ScreenUpdating = False
Sheets("Graph_L5").ChartObjects(1).Delete
Charts.Add
ActiveChart.Location Where:=xlLocationAsObject, Name:="Graph_L5"
For i = 1 To dr
  With Sheets("Graph_L5").ChartObjects(1).Chart
    .SeriesCollection.NewSeries
    .SeriesCollection(i).ChartType = xlLineMarkers
    .SeriesCollection(i).XValues = Sheets("Tot_L5") _
              .Range(sh.Cells(drX, 2), sh.Cells(drX, 10))
    .SeriesCollection(i).Values = Sheets("Tot_L5") _
              .Range(sh.Cells(drY, 2), sh.Cells(drY, 10))
    drX = drX + 13
    drY = drY + 13
  End With
Next
With Application
  .SendKeys "{esc}"
  .ScreenUpdating = True
End With
Set sh = Nothing
End Sub

     
gruß Herbert
Anzeige
AW: Kleines Problem
27.07.2005 09:58:41
Herbert
so kannst du an das bestehende jeweils eine neue Datenreihe hinzufügen:


Option Explicit
Sub datenr_hinzuf()
Dim sh As Worksheet, lz%
Set sh = Sheets("Tot_L5")
Dim i%
lz = sh.Cells(Rows.Count, 2).End(xlUp).Row
On Error Resume Next
Application.ScreenUpdating = False
With Sheets("Graph_L5").ChartObjects(1).Chart
    i = .SeriesCollection.Count
    .SeriesCollection.NewSeries
    .SeriesCollection(i + 1).ChartType = xlLineMarkers
    .SeriesCollection(i + 1).Values = Sheets("Tot_L5") _
              .Range(sh.Cells(lz, 2), sh.Cells(lz, 10))
End With
With Application
  .SendKeys "{esc}"
  .ScreenUpdating = True
End With
Set sh = Nothing
End Sub

     
die Zahl 10 mußt natürlich mit 203 ergänzen...
funktioniert natürlich nur,wenn die nächste Datenreihe in der Tabelle
auch die letzte Zeile ist...
das sind nur Ansätze, Beispiele zu deinem Project..
da ich ja deine Tabelle und deine Praxisausführung nicht kenne...
gruß Herbert
Anzeige
AW: Kleines Problem
27.07.2005 12:52:01
Ramon
Hallo Herbert,
danke das du dich der Sache annimmst. Ich wollte dir mal meine Tabelle hochladen, aber das funktioniert nicht, wegen angeblichem ungültigen Dateinamen? Nun ja, dann versuch och so noch mal zu erklären wo das Problem liegt. Dein Makro funktioniert, jedoch noch nicht so wie ich es gerne hätte...meine Tabelle hat 4680 Zeilen. Die Zeilen 12, 25, 38 ...4679 (im 13er Schritt) sollen die x-Werte der Graphen bilden, die Zeilen 13, 26, 39...4680 (im 13er Schritt) die y-Werte...also Graph 1 mit den Wertepaaren aus Zeilen 12 und 13, Graph 2 aus 25 und 26..und so weiter...das heisst am Ende sollen 4680/13=360 Graphen im Diagramm "Graph_L5" auftauchen. Dein Makro erzeugt zunächst ein Diagramm im bestehenden Diagramm "Graph_L5", zudem nur mit 255 Graphen und nicht 360. (Meine Kenntnisse sind leider mangelhaft , somit versteh ich nicht warum er genau 255 Graphen malt). Ausserdem zeichnet er die Werte der x-Achse invers auf, also mit dem grössten Wert (Wert in Spalte 2...(die Werte der x-Zeilen nehmen von links nach rechts ab)) im Koordinatenkreuz. Ich möchte ein ganz normales Diagramm mit dem Wert 0/0 im Koordiantenursprung, so wie ich es auch erhalte, wenn ich die Zeilen für das Diagramm "von Hand" auswähle, also nicht über das Makro. Ich hoffe du kannst damit was anfangen, ist dumm ohne Datei...Vielen Dank, Ramon
Anzeige
AW: Kleines Problem
27.07.2005 12:52:21
Ramon
Hallo Herbert,
danke das du dich der Sache annimmst. Ich wollte dir mal meine Tabelle hochladen, aber das funktioniert nicht, wegen angeblichem ungültigen Dateinamen? Nun ja, dann versuch och so noch mal zu erklären wo das Problem liegt. Dein Makro funktioniert, jedoch noch nicht so wie ich es gerne hätte...meine Tabelle hat 4680 Zeilen. Die Zeilen 12, 25, 38 ...4679 (im 13er Schritt) sollen die x-Werte der Graphen bilden, die Zeilen 13, 26, 39...4680 (im 13er Schritt) die y-Werte...also Graph 1 mit den Wertepaaren aus Zeilen 12 und 13, Graph 2 aus 25 und 26..und so weiter...das heisst am Ende sollen 4680/13=360 Graphen im Diagramm "Graph_L5" auftauchen. Dein Makro erzeugt zunächst ein Diagramm im bestehenden Diagramm "Graph_L5", zudem nur mit 255 Graphen und nicht 360. (Meine Kenntnisse sind leider mangelhaft , somit versteh ich nicht warum er genau 255 Graphen malt). Ausserdem zeichnet er die Werte der x-Achse invers auf, also mit dem grössten Wert (Wert in Spalte 2...(die Werte der x-Zeilen nehmen von links nach rechts ab)) im Koordinatenkreuz. Ich möchte ein ganz normales Diagramm mit dem Wert 0/0 im Koordiantenursprung, so wie ich es auch erhalte, wenn ich die Zeilen für das Diagramm "von Hand" auswähle, also nicht über das Makro. Ich hoffe du kannst damit was anfangen, ist dumm ohne Datei...Vielen Dank, Ramon
Anzeige
AW: Kleines Problem
27.07.2005 14:02:08
Herbert
dann sende die Beispielmappe(mit Musterdiagramm) an meine Mailadresse unter Profile...
gruß Herbert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige