Hallo zusammen,
brauch mal Hilfe.
Der nachfolgende Code sollte so verändert werden, dass nicht das Tablbatt direkt angesprochen wird, sondern entnehme den Wert Tabblatt "Depot" aus markierter Zeile und aus Spalte E (Werte aus Spalte E sind identisch mit den Tabblatt-Namen.
Was muss ich anstelle - Sheet("HD") - im Code ändern?
Code:
.SetSourceData Source:=Sheets("HD").Range("A1:A261,G1:G261")
Danke schon mal im Voraus!!!
Hallo Bernie,
versuchs mal so
Code:
.SetSourceData Source:=Sheets(Worksheets("Depot").Cells(ActiveCell.Row, 5).Value).Range("A1:A261,G1:G261")
Hallo Stefan,
Danke für die Hilfe.
leider bekomme Fehlermeldung und zwar ... "Objekt oder With-Blockvariable nicht festgelegt"
Hier mal der ganze Code
Code:
Sub Chart_neu()
Sheets("Chart-Vorschau").Visible = True
With Charts.Add
.ChartType = xlLine
.SetSourceData Source:=Sheets(Worksheets("Depot").Cells(ActiveCell.Row, 5).Value).Range("A1:A261,G1:G261")
.Location Where:=xlLocationAsObject, Name:="Chart-Vorschau"
End With
With ActiveSheet.ChartObjects(1)
.Left = 6
.Top = 6
.Width = 960
.Height = 480
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Text = Sheets("Depot").Range("B16").Value & " " & "-" & " " & "Kursverlauf 1 Jahr mit 38 und 200 Tage Trendlinien"
.ChartArea.Select
.Legend.Select
Selection.Position = xlTop
.Axes(xlCategory).MajorUnitScale = xlDays
.Axes(xlCategory).MajorUnit = 7
End With
Call trendlinien
End Sub
Übrigens beim Charttitel müsste ich auch geändert haben und zwar "aktive Zeile - Wert in Spalte 2".
Hallo,
durch das Chart.Add ist die Tabelle nicht mehr aktiv und ein Chart hat keine Row-Eigenschaft. Ein wenig waklig ist meine Codeänderung trotzdem, da Du vor dem Charterstellen eine Tabelle einblendest und ich nicht weiß, welche Tabelle dann aktiv ist und von welcher Tabelle Du überhaupt die aktive Zeile brauchst aber versuche es mal so
Code:
Sub Chart_neu()
Dim lngRow As Long
lngRow = ActiveCell.Row
Sheets("Chart-Vorschau").Visible = True
' lngRow = ActiveCell.Row
With Charts.Add
.ChartType = xlLine
.SetSourceData Source:=Sheets(Worksheets("Depot").Cells(lngRow, 5).Value).Range("A1:A261,G1:G261")
.Location Where:=xlLocationAsObject, Name:="Chart-Vorschau"
End With
With ActiveSheet.ChartObjects(1)
.Left = 6
.Top = 6
.Width = 960
.Height = 480
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Text = Sheets("Depot").Cells(lngRow, 2).Value & " " & "-" & " " & "Kursverlauf 1 Jahr mit 38 und 200 Tage Trendlinien"
.ChartArea.Select
.Legend.Select
Selection.Position = xlTop
.Axes(xlCategory).MajorUnitScale = xlDays
.Axes(xlCategory).MajorUnit = 7
End With
Call trendlinien
End Sub
Hallo Stefan,
bekomme Fehlermeldung "Index außerhalb gültigen Bereichs"
Zitat:von welcher Tabelle Du überhaupt die aktive Zeile brauchst
Ich rufe von Tab "Depot" über Button das Makro auf und somit die Tabelle "Chart-Vorschau". Das Makro erstellt in Tabelle "Chart-Vorschau" mein Diagramm. Bis dahin hat alles geklappt.
Was ich variable haben wollte ist 1. "SetSourceData Source" und 2. "ChartTitle.Text".
1. Ist Tabelle "Depot" Spalte E
2. Ist Tabelle "Depot" Spalte B
...jeweils die aktive Zeile (erste Zeile ist Nr. 3 und letzte Nr. 32), wird vorher mit Mausklick markiert bevor das Makro startet.
Depot | B | C | D | E |
2 | Name | Branche | Indizes | Kürzel |
3 | Home Depot | Handel | Dow Jones | HD |
4 | Intel | Technologie | Dow Jones | INTC |
5 | Merck & Co | Chemie / Pharma | Dow Jones | MRK |
6 | Microsoft | Technologie | Dow Jones | MSFT |
7 | Nike | Konsumgüter | Dow Jones | NKE |
8 | Bayer | Chemie / Pharma | Dax | BAYN.DE |
9 | Commerzbank | Finanzsektor | Dax | CBK.DE |
10 | RWE | Versorger | Dax | RWE.DE |
11 | ThyssenKrupp | Industrie | Dax | TKA.DE |
12 | LPKF Laser | Technologie | TecDax | LPK.DE |
13 | Manz | Industrie | TecDax | M5Z.DE |
14 | Morphosys | Chemie / Pharma | TecDax | MOR.DE |
15 | Nemetschek | Software | TecDax | NEM.DE |
16 | STRATEC Biomedical | Gesundheitswesen | TecDax | SBS.DE |
17 | Aareal Bank | Finanzsektor | MDax | ARL.DE |
18 | Fielmann | Handel | MDax | FIE.DE |
19 | Gagfah | Diverse | MDax | GFJ.DE |
20 | Kabel Deutschland | Medien / Entertainment / Freizeit | MDax | KD8.DE |
21 | Kuka | Industrie | MDax | KU2.DE |
22 | LEG Immobilien | Diverse | MDax | LEG.DE |
verwendete Formeln | |
Zelle | Formel | Bereich | N/A |
C3 | =WENN($B3="";"";SVERWEIS($B3;Kürzel!$A:$E;3;0)) | | |
C4:C22 | =WENN(B4="";"";SVERWEIS(B4;Kürzel!A:E;3;0)) | | |
D3: D22 | =WENN($B3="";"";SVERWEIS($B3;Kürzel!$A:$E;2;0)) | | |
E3:E22 | =WENN($B3="";"";SVERWEIS($B3;Kürzel!$A:$E;4;0)) | | |
Excel-Inn.de |
Hajo-Excel.de |
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007 |
Add-In-Version 18.19 einschl. 64 Bit |
Hallo Bernie,
in welcher Codezeile taucht der Fehler auf?
(22.10.2014, 14:30)Bernie schrieb: [ -> ]Ich rufe von Tab "Depot" über Button das Makro auf und somit die Tabelle "Chart-Vorschau". Das Makro erstellt in Tabelle "Chart-Vorschau" mein Diagramm. Bis dahin hat alles geklappt.
Ich habe dies auf Excel 2010 und jetzt auf Excel 2007 getestet. Bei mir wird ein eigenständiges Diagrammblatt angelegt
Hallöchen,
wo kommt denn
"Index außerhalb gültigen Bereichs" ??
Als erstes vermute ich, wenn mir Excel so eine Meldung bringt, einen Fehler z.B. im Blattnamen oder Blattindex.
Der Fehler kommt also vermutlich in dieser Zeile:
.SetSourceData Source:=Sheets(Worksheets("Depot").Cells(lngRow, 5).Value).Range("A1:A261,G1:G261")
und in Spalte E ist eventuell eine leere Zelle markiert gewesen oder dort steht ein Blattname, der ein Leerzeichen zuviel hat, oder ein Schreibfehler hat sich eingeschlichen, oder ...
Das
" " & "-" & " " & "Kursverlauf 1 Jahr mit 38 und 200 Tage Trendlinien"
kannst Du übrigens zusammenziehen:
" - Kursverlauf 1 Jahr mit 38 und 200 Tage Trendlinien"
Hallo Ihr Beiden,
danke schon mal für Eure Bemühungen.
Hier meine Testmappe.
Hallo Bernie,
Der Button "Diagramm erzeugen" ruft aber ein Makro einer anderen Mappe auf
BK...verwaltung.xlsm
Hallo Bernie,
hab's gerade gefunden - im mdl_CreateChart. Dachte doch, das wäre dem Button zugeordnet ...
Wenn ich darauf achte, das vor dem Start das Blatt Depot aktiv ist und auch eine entsprechend gefüllte Zelle in Spalte E, dann läuft es. Hat bei E3 bis E7 geklappt.
Wenn nicht, kommt, wie von mir beschrieben, ein Fehler.
"...und in Spalte E ist eventuell eine leere Zelle markiert gewesen..." --> sprich leere "Zeile"