Anzeige
Archiv - Navigation
1448to1452
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
Inhaltsverzeichnis

Makro zum rollieren vom Diagramm

Makro zum rollieren vom Diagramm
25.09.2015 14:26:58
Marco
Hallo,
ich habe ein paar Probleme mit einem Makro.
Ich möchte mit einem Makro ein Diagramm einen Tag vor oder Rückwärts rollieren lassen.
Es werden immer Daten von 7 Tagen angezeigt. z.B. 6.9 - 12.9
Nun habe ich 2 Button erstellt. Vor und Zurück. Wenn ich z.B. auf vor drücke soll das Diagramm dann einen Tag weiter springen. (7.9 - 13.)
Bei zurück natürlich in die andere Richtung.
Habe folgenden Code probiert,(der hat in einer anderen Mappe schon funktioniert)
Sub Chart_minus_Montage()
Dim start As Integer
Dim Ende As Integer
Dim StartVorher As Integer
Dim EndeVorher As Integer
Dim Diese_Datei_Name As String
StartVorher = Sheets("Tabelle 3").Range("B2")
EndeVorher = Sheets("Tabelle 3").Range("B3")
If StartVorher = 4 Then Exit Sub
start = StartVorher - 1
Ende = EndeVorher - 1
Diese_Datei_Name = ThisWorkbook.Name
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.SetSourceData Source:=Sheets("Montage 2").Range("I" & start & ":L" & Ende)
ActiveChart.SeriesCollection(1).Name = "='Montage 2'!$J$8"
ActiveChart.SeriesCollection(2).Name = "='Montage 2'!$K$8"
ActiveChart.SeriesCollection(3).Name = "='Montage 2'!$L$8"
ActiveWindow.Visible = False
Windows(Diese_Datei_Name).Activate
Range("A1").Select
Sheets("Tabelle 3").Range("B2") = start
Sheets("Tabelle 3").Range("B3") = Ende
End Sub
Sub Chart_plus_Montage()
Dim start As Integer
Dim Ende As Integer
Dim StartVorher As Integer
Dim EndeVorher As Integer
Dim Diese_Datei_Name As String
StartVorher = Sheets("Tabelle 3").Range("B2")
EndeVorher = Sheets("Tabelle 3").Range("b3")
start = StartVorher + 1
Ende = EndeVorher + 1
Diese_Datei_Name = ThisWorkbook.Name
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.SetSourceData Source:=Sheets("Montage 1").Range("I" & start & ":L" & Ende)
ActiveChart.SeriesCollection(1).Name = "='Montage 1'!$J$7"
ActiveChart.SeriesCollection(2).Name = "='Montage 1'!$K$7"
ActiveChart.SeriesCollection(3).Name = "='Montage 1'!$L$7"
ActiveWindow.Visible = False
Windows(Diese_Datei_Name).Activate
Range("A1").Select
Sheets("Tabelle 3").Range("B2") = start
Sheets("Tabelle 3").Range("B3") = Ende
End Sub
Bei dem Minus Code kommt dauernd Fehler 1004 Anwendungs oder Objektdefinierter Fehler.
Bei dem Plus Code kommt dauernd Fehler 1004 Ungültiger Parameter.
Hat jemand eine Idee?
Danke schonmal im voraus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum rollieren vom Diagramm
25.09.2015 14:53:45
EtoPHG
Hallo Marco,
Das ist ohne Beispielmappe nicht nachzuvollziehen! Du sagst auch nicht bei welcher Codezeile der Fehler auftritt.
Die entscheidende Frage ist aber, warum du das mit VBA lösen willst? Es gibt genügend Beispiele von dynamischen Diagrammen in der Recherche und noch viel mehr im iNet, die solche 'Verschiebungs'operationen ohne jeglichen Code erlauben.
Gruess Hansueli

AW: Makro zum rollieren vom Diagramm
25.09.2015 17:14:48
Daniel
Hi
das würde ich einfacher lösen.
und zwar mit einer kleinen Hilfstabelle, in welcher du für genau´7 Tage die Werte aus der Haupttabelle mit Hilfe der INDEX-Funktion ausliest.
Das Diagramm erstellst du über die Hilfstabelle.
die Verschiebung machst du, in dem du den Zeilenwert für die Index-Funktion entsprechen veränderst, das sollte sogar ganz ohne Makro funktionieren.
Schau dir mal das Beispiel an: https://www.herber.de/bbs/user/100400.xlsx
gruß Daniel

Anzeige
AW: Makro zum rollieren vom Diagramm
25.09.2015 21:07:43
matthias
Hallo Marco,
ich würde das ganze über einen Autofilter machen, Diagramme zeigen ausgeblendete Zeilen nämlich i.d.R. nicht an. D.h. in deine Datentabelle einen Autofilter setzen, ein ActiveX-Spinbutton bezogen auf Zelle1 neben das Diagramm pflastern, Zelle2.Formel = "=Zelle1+6" . Dazu ein zwei Events und fertig ist der Salat.
https://www.herber.de/bbs/user/100404.xlsm
'Eingabe über Spinbutton
Private Sub SpinButton1_Change()
Dim rZelle1 As Range, rZelle2 As Range, rFilter As Range
Set rZelle1 = Tabelle2.Range("E1")  'Von
Set rZelle2 = Tabelle2.Range("G1")  'Bis
Set rFilter = Tabelle1.Range("A:B") 'Zu filternder Bereich
If IsDate(rZelle1) And IsDate(rZelle2) Then _
rFilter.AutoFilter Field:=1, Criteria1:=">=" & CSng(rZelle1), Operator:=xlAnd, _
Criteria2:="=" & CSng(rZelle1), Operator:=xlAnd
If IsDate(rZelle1) = False And IsDate(rZelle2) = False Then _
Tabelle1.ShowAllData
End Sub
'Händige Eingabe in Zelle
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E1,G1")) Is Nothing Then SpinButton1_Change
End Sub
Wobei ich Daniel beipflichten muss den Weg ohne Makro zu wählen, sofern es einen gibt.
lg Matthias

Anzeige
AW: Makro zum rollieren vom Diagramm
30.09.2015 06:43:07
Marco
Erstmal Danke für eure Antworten.
Krankheitsbedingt kann ich zur Zeit nur übers Handy ins Internet.
Somit kann ich eure Vorschläge leider noch nicht testen.
Werde das so schnell wie möglich machen und dann hier eine Info posten.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige