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

Diagramm automatisieren

Diagramm automatisieren
24.02.2004 11:07:03
Matthias
Hallo,
nach einem Tipp von Harry habe ich folgende Zeilen:
letzte_Zeile = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Set a_Range = Sheets(1).Range(Cells(2, 1), Cells(letzte_Zeile, 1)) 'A2:A5000
Set b_Range = Sheets(1).Range(Cells(2, 6), Cells(letzte_Zeile, 6)) 'F2:F5000
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets(2).Range(a_Range, b_Range), _
PlotBy:=xlColumns
Problem:
Es wird nicht die spalte A2 bis A5000 und Spalte F2 bis F5000 gewählt, sondern A2:F5000.
Außerdem macht mir diese Zeile auch noch Kopfzerbrechen:
ActiveChart.SeriesCollection(1).XValues = "=confdev!R2C3:R5000C3"
Ich bekomme für den Tabellennamen keinen relativen Name hin, und auch hier müßte die letzte Zeile nicht 5000 sein sondern eine Variable (letzte_Zeile).
Ich danke euch

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm automatisieren
24.02.2004 11:39:02
Russi
Hallo Matthias!
Ist vielleicht nicht speziell auf Dein Problem zugeschnitten, aber vielleicht hilfts Dir ja.
Ich habe mir schonmal ein Makro geschrieben, welches nach jedem Sprung innerhalb der Tabelle in der jeweiligen Spalte die erste und die letzte gefüllte Zelle ermittelt und mit dem ermittelten Zellbereich das enthaltene Diagramm (Hier: Diagramm64) aktualisiert.
Hier der Code (hoffe, Du kannst ihn brauchen!)

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Selection.Column = 1 Then Exit Sub
Dim Spalte As Integer, Zeile As Integer
Dim ZeileBeg As Integer, ZeileEnd As Integer
Dim Zuwachs As Integer
Dim Zeitraum As Double
' Definition Spalte und Zeile
Spalte = Selection.Column
Zeile = Selection.Row
' Definition BeginnZeile
ZeileBeg = 5
Do While Cells(ZeileBeg, Spalte) = ""
ZeileBeg = ZeileBeg + 1
If ZeileBeg = 100 Then Exit Sub
Loop
' Definition EndZeile
ZeileEnd = ZeileBeg
Do Until Cells(ZeileEnd, Spalte) = ""
ZeileEnd = ZeileEnd + 1
Loop: ZeileEnd = ZeileEnd - 1
' Definition Zuwachs
Zuwachs = Cells(ZeileEnd, Spalte) - Cells(ZeileBeg, Spalte)
' Aktualisierung Diagramm
If Zuwachs < 0 Then
ZuwachsLabel.ForeColor = RGB(255, 0, 0)
ActiveSheet.ChartObjects("Diagramm 64").Activate
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.Color = RGB(255, 0, 0)
.Weight = xlThin
.LineStyle = xlContinuous
End With
Else:
ZuwachsLabel.ForeColor = RGB(0, 0, 255)
ActiveSheet.ChartObjects("Diagramm 64").Activate
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.Color = RGB(0, 0, 255)
.Weight = xlThin
.LineStyle = xlContinuous
End With
End If
ZuwachsLabel.Caption = "Veränderung: " & Zuwachs & " EUR"
ActiveSheet.ChartObjects("Diagramm 64").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Geld").Range(Cells(ZeileBeg, Spalte), Cells(ZeileEnd, Spalte)), PlotBy:=xlColumns
' Rendite errechnen und eintragen
Zeitraum = (ZeileEnd - ZeileBeg) / 4
'Debug.Print Zeitraum
'Cells(4, Spalte).Value = Zuwachs
Cells(Zeile, Spalte).Select
End Sub

Anzeige
AW: Diagramm automatisieren
24.02.2004 12:36:27
Matthias
Leider komme ich auch nicht weiter. Allein in
ActiveChart.SetSourceData Source:=Sheets("Geld").Range(Cells(ZeileBeg, Spalte), Cells(ZeileEnd, Spalte))
bekomme ich den fehler "Cells in Objekt _Global fehlgeschlagen". mit meiner Version ging es , allerdings eben keine zwei Spalten sondern alle Spalten dazwischen auch.
Matthias
AW: Diagramm automatisieren
24.02.2004 13:09:47
Russi
Hallo!
1. Hast Du den Tabellennamen "Geld" angepasst auf den Namen Deiner Tabelle?
2. Mein Makro beginnt erst in Zeile 5 damit, gefüllte Zeilen zu suchen. Ggf. musst Du auch noch ZeileBeg = 5 durh ZeileBeg = X ersetzen.
3. Und natürlich den Diagrammnamen durch den Namen Deines Diagramms ersetzen.
Jetzt besser?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige