StartRow
07.07.2005 15:35:53
Richard
vielleicht könnt ihr mir helfen, ich komme nicht weiter, und zwar ich erstelle per vba Diagramme, es sind Daten mit unterschiedlich vielen Zeilen, deswegen habe ich eine Inputbox eingebaut, in der ich eingeben kann ab welcher Zeile ich die Auswertung haben möchte, mein Problem ist jetzt, das in der zweiten Zeile die Überschriften für die Daten stehen, wenn ich jetzt bei StartRow 50 eingebe dann kriege ich ein Diagramm in der Legende aber sind die Daten als Reihen beschriftet, wie könnte ich das ändern?
wäre sehr dankbar für jede Antwort
gruß
richard
hier ein Auschnitt:
Option Explicit
Dim mysheet As Worksheet
Private Sub Diagramm()
Dim i As Integer
Dim anzZeilen As Long
Dim StartRow As Long
Dim First As Boolean
Dim src As Range
Dim xColumn As Integer
Dim ch As Chart
Dim s As String
Dim user
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error GoTo err_CreateChart
user = Environ("Username")
On Error GoTo fehler
First = True 'Boolean
With mysheet
anzZeilen = .Cells(.Rows.Count, 12).End(xlUp).Row
StartRow = Application.InputBox("Geben Sie die Zeile mit der Sie die Auswertung beginnen möchten!")
End With
For i = 0 To ListBox1.ListCount - 1
With mysheet
xColumn = ListBox1.List(i, 1)
Set src = Range(.Cells(StartRow, xColumn), .Cells(anzZeilen, xColumn))
'hier müsste ich irgendwie noch die 2 Zeile angeben zu StartRow aber wie?
End With
If ListBox1.Selected(i) Then
If First Then
First = False
s = mysheet.Name
Set ch = Charts.Add
'++++++++++++++++++++++++++++++++Diagrammformatierung+++++++++++++++++++++++++++++++++++++++++++
With ch
.ChartType = xlXYScatter
.SetSourceData Source:=src, PlotBy:=xlColumns
.Location xlLocationAsNewSheet, Name:=ListBox1.List(i)
.HasTitle = True
.ChartTitle.Text = s
.HasLegend = True
.Legend.Border.LineStyle = xlNone
.Legend.Font.Size = 8
.Legend.Position = xlLegendPositionBottom
.PlotArea.Border.LineStyle = xlNone
.Axes(xlValue).MajorGridlines.Border.LineStyle = xlDot
.Axes(xlValue).TickLabels.Font.Size = 8
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "µm"
.Axes(xlCategory).TickLabels.Font.Size = 8
.Axes(xlCategory).TickLabelPosition = xlLow
xColumn = IIf(ComboBox1.ListIndex = 0, 14, 15)
.seriescollection(1).XValues = "='" & mysheet.Name & "'!R" & StartRow & "C" & xColumn & ":R" & anzZeilen & "C" & xColumn
End With
If Me.CheckBox1 = True Then
ch.PlotArea.Fill.TwoColorGradient Style:=msoGradientHorizontal, Variant:=1
ch.PlotArea.Fill.ForeColor.SchemeColor = 15
ch.PlotArea.Fill.BackColor.SchemeColor = 2
ch.PlotArea.Fill.Visible = True
Else
ch.PlotArea.Interior.ColorIndex = xlNone
End If
Else
ch.seriescollection.Add src
End If
ch.PageSetup.RightFooter = "&8erstellt von " & user
ch.PageSetup.LeftHeader = "&8Stand: " & Format(Date, "dd.mmmm yyyy")
End If
Next
Exit Sub
Set ch = Nothing
err_CreateChart:
MsgBox "Fehler " & Err.Number & vbCrLf & Err.Description, _
vbOKOnly + vbCritical
fehler:
MsgBox "Der Vorgang wurde abgebrochen!"
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub