Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datenbereich für Diagramme über Makro

Datenbereich für Diagramme über Makro
06.01.2006 17:09:02
Matthias
Hallo,
ich komme einfach nicht weiter.
Folgendes Problem:
Ich habe eine Combobox, in der alle Tabellenblattnamen eingelesen werden. ZUdem ein Diagramm. Nun habe ich das angehängte Makro geschrieben. Das Makro geht mir in das ausgewählte Blatt, greift aber nicht auf die Werte zu und spielt sie nicht ins Diagramm im Blatt "Charts" ein.
Könnt ihr mir bitte weiterhelfen?

Private Sub ComboBox1_Change()
For i = 1 To Sheets.Count
If Sheets(i).Name = ComboBox1.Value Then Exit For
Next i
Sheets(i).Select
Dim chtChart As Chart
Dim intIndex As Integer
For intIndex = 6 To 25
If ActiveSheet.Cells(intIndex, 32).Value = "" Then Exit For
Next intIndex
Set chtChart = ActiveSheet.ChartObjects(1).Chart
chtChart.SetSourceData _
Source:=ActiveSheet.Range(Cells(6, 32), Cells(intIndex - 1, 32))
chtChart.Axes(xlCategory).CategoryNames = _
ActiveSheet.Range(Cells(6, 4), Cells(intIndex - 1, 4))
Set chtChart = Nothing
End Sub

Danke für eure Hilfe.
Matthias
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datenbereich für Diagramme über Makro
06.01.2006 20:06:30
Herbert
hallo Matthias,
wenn ich das richtig verstanden habe willst du doch
die Werte vom "Sheet(i)" im Diagramm anzeigen,
und nicht die Werte vom "ActiveSheet"...
gruß Herbert
AW: Datenbereich für Diagramme über Makro
09.01.2006 07:51:19
Matthias
Guten Morgen Herbert,
wenn ich nun ActiveSheet durch Sheets(i) ersetzte zeigt er mir in diesen Zeilen einen Laufzeitfehler an:
chtChart.SetSourceData _
Source:=ActiveSheet.Range(Cells(6, 32), Cells(intIndex - 1, 32))
Ich kenne mich in VBA leider überhaupt nicht aus. Kannst du mir bitte weiterhelfen?!
Danke.
lg Matthias
Anzeige
AW: Datenbereich für Diagramme über Makro
09.01.2006 15:25:31
Herbert
dann mußt du wenigstens das gesamte korrigierte Makro
hier reinkopieren !
welcher Laufzeitfehler kommt ?
gruß Herbert
AW: Datenbereich für Diagramme über Makro
10.01.2006 07:44:31
Matthias
Guten Morgen Herbert,
tschuldige bin ein wenig ungeduldig.
Hier das korrigierte Makro:

Private Sub ComboBox1_Change()
For i = 1 To Sheets.Count
If Sheets(i).Name = ComboBox1.Value Then Exit For
Next i
Sheets(i).Select
Dim chtChart As Chart
Dim intIndex As Integer
For intIndex = 6 To 25
If Sheets(i).Cells(intIndex, 32).Value = "" Then Exit For
Next intIndex
Set chtChart = Sheets("Charts").ChartObjects("Diagramm 4").Chart
chtChart.SetSourceData _
Source:=Sheets(i).Range(Cells(6, 32), Cells(intIndex - 1, 32))
chtChart.Axes(xlCategory).CategoryNames = _
Sheets(i).Range(Cells(6, 4), Cells(intIndex - 1, 4))
Set chtChart = Nothing
End Sub

Dieser Bereich wird gelb markiert und der Pfeil steht in der 2 Zeile
chtChart.SetSourceData _
Source:=Sheets(i).Range(Cells(6, 32), Cells(intIndex - 1, 32))
Angezeigt wird mir der Laufzeitfehler '1004':
Anwendungs- oder objektdefinierter Fehler
Danke für deine Hilfe.
Wenn das klappt belästige ich euch nicht mehr! :-))
Matthias
Anzeige
AW: Datenbereich für Diagramme über Makro
10.01.2006 18:48:47
Herbert
so funktioniert es,wenn der Diagrammname stimmt...


Private Sub ComboBox1_Change()
Dim i%, x$, intIndex%, cht As Chart
Set cht = Sheets("Charts").ChartObjects(1).Chart
For i = 1 To Sheets.Count
    If Sheets(i).Name = ComboBox1.Value Then
        x = Sheets(i).Name
       Exit For
    End If
Next
With Sheets(x)
    intIndex = Sheets(x).Cells(Rows.Count, 32).End(xlUp).Row
    cht.SetSourceData Source:=.Range(.Cells(6, 32), _
    .Cells(intIndex, 32)), PlotBy:=xlColumns
    cht.Axes(xlCategory).CategoryNames = .Range(.Cells(6, 4), _
    .Cells(intIndex, 4))
End With
End Sub
     gruß Herbert
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige