Laufzeitfehler 1004
08.08.2007 13:27:15
Philipp
Bin gerade dabei, dass ich mir Diagramme erstellen lasse.
Über eine listbox und 2 checkboxen kann man kriterien auswählen und dann per cmdbutton das diagramm erstellen.
Nur sagt er mir einen fehler in dieser zeile:
Range("A10:H152").Select
hier ist der ganze code:
Private Sub CommandButton1_Click()
If ListBox1.Value = "Mai 07" And CheckBox1.Value = True Then
Sheets("Mai 07").Select
Selection.AutoFilter Field:=5, Criteria1:="Kraftstoff"
Range("A10:H152").Select
Selection.Copy
Sheets(".").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Mai 07").Select
Selection.AutoFilter Field:=5
Application.CutCopyMode = False
Sheets("Diagramme").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets(".").Range("B1:B19,H1:H19"), PlotBy _
:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "='.'!R1C1:R19C1"
ActiveChart.SeriesCollection(1).Name = "=""Kraftstoff"""
ActiveChart.SeriesCollection(2).XValues = "='.'!R1C1:R19C1"
ActiveChart.SeriesCollection(2).Name = "=""Preis"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Diagramme"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Kraftstoff Mai 07"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Pos."
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False
End If
If ListBox1.Value = "Mai 07" And CheckBox1.Value = True And CheckBox2.Value = True Then
Sheets("Mai 07").Select
Selection.AutoFilter Field:=5, Criteria1:="Kraftstoff"
Range("A10:H152").Select
Selection.Copy
Sheets(".").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Mai 07").Select
Selection.AutoFilter Field:=5
Application.CutCopyMode = False
Sheets("Diagramme").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets(".").Range("B1:B19,H1:H19"), PlotBy _
:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "='.'!R1C1:R19C1"
ActiveChart.SeriesCollection(1).Name = "=""Kraftstoff"""
ActiveChart.SeriesCollection(2).XValues = "='.'!R1C1:R19C1"
ActiveChart.SeriesCollection(2).Name = "=""Preis"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Diagramme"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Kraftstoff Mai 07"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Pos."
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False
Sheets("Mai 07").Select
Selection.AutoFilter Field:=5, Criteria1:="DP1 - Dauerlauf"
Range("A15:H143").Select
Selection.Copy
Sheets(".").Select
Range("I1").Select
ActiveSheet.Paste
Sheets("Diagramme").Select
Range("E22").Select
Application.CutCopyMode = False
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets(".").Range("J1:J9,P1:P9"), PlotBy _
:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "='.'!R1C9:R9C9"
ActiveChart.SeriesCollection(1).Name = "=""Stunden"""
ActiveChart.SeriesCollection(2).XValues = "='.'!R1C9:R9C9"
ActiveChart.SeriesCollection(2).Name = "=""Kosten"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Diagramme"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "DP1 Mai 07"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Pos."
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlRight
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=False
ActiveChart.HasDataTable = False
End If
End Sub
Vielleicht kann mir ja auch wer Tips geben wie ich diese Anfrage besser machen könnte.
Jetzt muss man in der Listbox das Monat auswählen und über die Checkboxen welches Diagramm man will, und so wie ich jetzt angefangen habe, werden dass eine Menge If-Abfragen.
vielen dank im voraus
phil