Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

method 'cells' of object '_global' failed

method 'cells' of object '_global' failed
14.09.2007 12:09:00
Sebastian
Hallo Leute,
hab schon im Forum recherchiert. hab nichts gefunden.
ich möchte ein chart automatisch erstellen lassen, wobei die daten aus einer tabelle kommen, die vorher automatisch erstellt wurde. da die tabelle variieren kann (in der spaltenanzahl), muss die range des charts auch variabel sein. das habe ich so gelöst.:

Public Sub Chart()
Dim zahl As Integer
zahl = Worksheets.Count
zahl = zahl - 2
sheets("Auswertung").Select
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=sheets("Auswertung").Range(Cells(3, 2), Cells(9, 2 + zahl) _
), _
PlotBy:=xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:="Auswertung"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Chart"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveSheet.Shapes("Chart 1").IncrementLeft -153.6
ActiveSheet.Shapes("Chart 1").IncrementTop 102.6
End Sub


Die Tabelle hängt von der Zahl der eingestellten Worksheets ab. nun bekomme ich den Fehler "method 'cells' of object '_global' failed", wobei er mir die zeile "activechart.setsource..." markiert.
Könnt ihr mir bitte helfen. Was ist falsch?
bis dann
sebastian

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: method 'cells' of object '_global' failed
14.09.2007 12:37:14
Wolli
hmm, weiß nicht.
1.) Schreib mal die 3geteilte Zeile in eine:

ActiveChart.SetSourceData Source:=sheets("Auswertung").Range(Cells(3, 2), Cells(9, 2 + zahl)), PlotBy:=xlRows


2.) checke den Inhalt von "Zahl"
3.) Probiere im Direktbereich


sheets("Auswertung").Range(Cells(3, 2), Cells(9, 2 + zahl)).select


ob das alleine geht.
Übrigens: Es macht mich misstrauisch, dass "sheets" kleingeschrieben ist - anscheinend hat der Editor die Syntax nicht erkannt!?
Gutes Gelingen, Gruß, Wolli

Anzeige
AW: method 'cells' of object '_global' failed
14.09.2007 13:17:00
Sebastian
zu 1.) gemacht, keine Veränderung
zu 2.) Inhalt von Zahl ist 3, wie erwartet
zu 3.) es kommt die Fehlermeldung "run-time error 1004: application-defined oder object-defined error"
Hilfe! Was hat das alles zu bedeuten?
Übrigens: die Zeile habe ich aus einem aufgenommenen Makro kopiert und nur die werte in der range-klammer verändern bzw. variabel gemacht
danke schon mal für die schnelle antwort

Lösung!
14.09.2007 13:55:00
Wolli
Hallo Sebastian, ich habe die Antwort! Das Problem ist, dass das Diagramm beim Erstellen (zunächst) in einem eigenen Diagrammblat aktiv ist (merkst Du, wenn Du das Makro Schritt für Schritt ablaufen lässt). Wenn Du nun Cells ansprichst, bezieht sich das auf das aktuelle Blatt - da es ein Diagrammblatt ist, hat es gar keine Zellen! Also:
Statt

ActiveChart.SetSourceData Source:=sheets("Auswertung").Range(Cells(3, 2), Cells(9, 2 + zahl)), PlotBy:=xlRows


schreibst Du


ActiveChart.SetSourceData Source:=Range(sheets("Auswertung").Cells(3, 2), sheets("Auswertung").Cells(9, 2 + zahl)), PlotBy:=xlRows


Gruß, Wolli

Anzeige
AW: Lösung!
14.09.2007 14:02:58
Sebastian
SUPER! VIELEN DANK! Endlich funktioniert es.
Vielen Dank für die schnelle Hilfe.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige