Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


VBA: wertaus zelle, aber variable zeile
#1
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!!!
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#2
Hallo Bernie,

versuchs mal so
Code:
.SetSourceData Source:=Sheets(Worksheets("Depot").Cells(ActiveCell.Row, 5).Value).Range("A1:A261,G1:G261")
Gruß Stefan
Win 7 / Office 2007
to top
#3
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".
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#4
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
Gruß Stefan
Win 7 / Office 2007
to top
#5
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
BCDE
2NameBrancheIndizesKürzel
3Home DepotHandelDow JonesHD
4IntelTechnologieDow JonesINTC
5Merck & CoChemie / PharmaDow JonesMRK
6MicrosoftTechnologieDow JonesMSFT
7NikeKonsumgüterDow JonesNKE
8BayerChemie / PharmaDaxBAYN.DE
9CommerzbankFinanzsektorDaxCBK.DE
10RWEVersorgerDaxRWE.DE
11ThyssenKruppIndustrieDaxTKA.DE
12LPKF LaserTechnologieTecDaxLPK.DE
13ManzIndustrieTecDaxM5Z.DE
14MorphosysChemie / PharmaTecDaxMOR.DE
15NemetschekSoftwareTecDaxNEM.DE
16STRATEC BiomedicalGesundheitswesenTecDaxSBS.DE
17Aareal BankFinanzsektorMDaxARL.DE
18FielmannHandelMDaxFIE.DE
19GagfahDiverseMDaxGFJ.DE
20Kabel DeutschlandMedien / Entertainment / FreizeitMDaxKD8.DE
21KukaIndustrieMDaxKU2.DE
22LEG ImmobilienDiverseMDaxLEG.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

Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#6
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 HuhHuhHuhHuh
Gruß Stefan
Win 7 / Office 2007
to top
#7
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"
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#8
Hallo Ihr Beiden,

danke schon mal für Eure Bemühungen.

Hier meine Testmappe.


Angehängte Dateien
.xlsm   TestDiagramm.xlsm (Größe: 160,5 KB / Downloads: 3)
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#9
Hallo Bernie,

Der Button "Diagramm erzeugen" ruft aber ein Makro einer anderen Mappe auf :-( BK...verwaltung.xlsm
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#10
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"
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Datum aus Zeile 1 in Formel in Zeile 2 Mcnick78 2 33 Vor 3 Stunden
Letzter Beitrag: shift-del
  Erste Zeile aus Zelle löschen kosmoritz 4 58 02.12.2016, 16:01
Letzter Beitrag: kosmoritz
  In Zelle soll Wert aus Zeile wiedergegeben der Kriterium erfüllt sebster85 1 43 28.11.2016, 11:27
Letzter Beitrag: Kuwer
  VBA Solver mit zusätzlicher Variable und Zielwert eränzen tschibolli 2 75 22.11.2016, 08:11
Letzter Beitrag: tschibolli
  Variable in Makro VaterBaum 12 164 12.11.2016, 20:34
Letzter Beitrag: AlterDresdner
Lightbulb VBA Zeile in eine Arbeitsmappe kopieren wenn in der Zeile eine 1 steht Olossos 8 119 11.11.2016, 17:08
Letzter Beitrag: Kuwer
  Bestimmte Zeile aus einer Zelle ausgeben Julian22 7 152 09.11.2016, 09:17
Letzter Beitrag: Julian22
  Leere Zeile mit Zeilenumbruch in ner Zelle entfernen ohne andre Umbrüche zu entfernen LinhBui 2 74 04.11.2016, 16:12
Letzter Beitrag: LinhBui
  VBA - Datum in Zeile suchen & darunter liegende Zelle befüllen. Dreas-wing 1 63 02.11.2016, 19:23
Letzter Beitrag: Steffl
  Inhalt Multiselect-ListBox in Variable auslesen Rabe 3 80 28.10.2016, 12:04
Letzter Beitrag: Rabe

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste