ich komme leider ohne Hilfe nicht weiter. Und zwar habe ich mit Makrorecorder die Erstellung eines Diagrammes aufgezeichnet. Wenn ich das Diagramm wieder lösche und einen erneuten Test starte, hält der Debugger in folgender Zeile des Codes an ....
Code:
ActiveSheet.Shapes.AddChart.Select
Ausgangspunkt ist: Diagramm erstellen per Klick auf Button, Datumsspalte A ist waagerechte und Spalte G ist senkrechte Achse. Dann zwei Trendlinien erstellen, 1. Gleitender Durchschnitt 200 Farbe Lila und 2. Gleitender Durchschnitt 38 Farbe rot.
so hab ich es getestet weiß aber nicht ob es Deiner Vorstellung entspricht
Code:
Sub Makro1() With ActiveSheet .ListObjects("ARL.DE").Range.AutoFilter Field:=1, Criteria1:= _ xlFilterYearToDate, Operator:=xlFilterDynamic .Range("G1").Activate .Shapes.AddChart.Select End With With ActiveChart .ChartType = xlLine .SetSourceData Source:=Range("A:A,G:G") .Axes(xlValue).Select .SeriesCollection(1).Select .SeriesCollection(1).Trendlines.Add .SeriesCollection(1).Trendlines(1).Select End With With ActiveSheet.ChartObjects(1) .Left = 400 .Top = 30 .Width = 500 .Height = 200 End With With Selection .Type = xlMovingAvg .Period = 2 End With With Selection .Type = xlMovingAvg .Period = 38 End With With Selection.Format.Line .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorAccent1 .ForeColor.TintAndShade = 0 .ForeColor.Brightness = 0 End With With Selection.Format.Line .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 End With ActiveChart.SeriesCollection(1).Select ActiveChart.SeriesCollection(1).Trendlines.Add ActiveChart.SeriesCollection(1).Trendlines(2).Select With Selection .Type = xlMovingAvg .Period = 2 End With With Selection .Type = xlMovingAvg .Period = 200 End With With Selection.Format.Line .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) End With With Selection.Format.Line .Visible = msoTrue .ForeColor.RGB = RGB(112, 48, 160) .Transparency = 0 End With End Sub
in Deinem Makro war dann auch von Diagramm3 die Rede, das gibt so aber nicht, heißt jedesmal anders darum habe ich die Maße hiermit erstellt
Code:
With ActiveSheet.ChartObjects(1) .Left = 400 .Top = 30 .Width = 500 .Height = 200 End With
ich versuche den Code vom Tom an meine Bedürfnisse anzupassen, leider ohne Erfolg.
Und zwar möchte ich den Autofilter so setzen (Datum in Spalte 1), dass die zwischen Zelle A2 (Enddatum) und Zelle A261 (Anfangsdatum) gefiltert wird (das bekomme ich mit Recorder hin ...
Code:
Sub Makro8() Range("A1:G1").Select Selection.AutoFilter ActiveSheet.ListObjects("ARL.DE").Range.AutoFilter Field:=1, Criteria1:= _ ">=10.10.2013", Operator:=xlAnd, Criteria2:="<=10.10.2014" ActiveWindow.SmallScroll Down:=-108 ActiveSheet.ListObjects("ARL.DE").Range.AutoFilter Field:=1, Criteria1:= _ ">=10.10.2013", Operator:=xlAnd, Criteria2:="<=10.10.2014" End Sub
... allerdings bekomme ich folgendes nicht gebacken. "Criteria1 soll nicht 10.10.2013 stehen sondern DatumsWert Zelle A261 und Criteria2 Zelle A2. Diese sind in allen Blättern identisch.
Und ich versuche die Zeile in Toms Code zu ändern ".ListObjects("ARL.DE")" und zwar sollen für ein bestimmtes Tabellenblatt "alle" gemeint sein.
Wer könnte mir helfen? Danke schon mal im Voraus!!!
Es funktioniert nur bedingt und zwar wenn der Code durchläuft werden alle zeilen ausgeblendet, erst wenn ich auf den Autofilterbutton in Zelle A1 klicke und der Dialog sich öffnet und wenn ich dann auf ok klicke wird erst der korrekte Bereich angezeigt. Das hatte ich beim Aufzeichnen mit dem Recorder nicht.