Herbers Excel-Forum - das Archiv
caroline
- caroline von Laufzeitfehler 1004... vom 10.10.2003 12:28:57
Betrifft: caroline
von: Laufzeitfehler 1004...
Geschrieben am: 10.10.2003 12:28:57
Hallöchen!
Was bedeutet
"Laufzeitfehler 1004:
Die Methode "Cells" für das Objekt "_Global" ist fehlgeschlagen."
Diese Zeile wird markiert:
ActiveChart.SetSourceData Source:=Sheets("Daten für Termin Graphik").Range("Cells(anzahl_datensaetze + 3, 3), Cells(anzahl_datensaetze + 3, anzahl_monate + 2)"), PlotBy:=xlColumns
Danke an alle Helfer!
Caroline
Betrifft: AW: caroline
von: xXx
Geschrieben am: 10.10.2003 12:37:10
Hallo,
die " im Range sind zuviel.
ActiveChart.SetSourceData Source:=Sheets("Daten für Termin Graphik").Range(Cells(anzahl_datensaetze + 3, 3), Cells(anzahl_datensaetze + 3, anzahl_monate + 2)), PlotBy:=xlColumns
Gruß aus'm Pott
Udo
http://www.excelerator.de
P.S. Das Forum lebt auch von den Rückmeldungen der Frager an die Antworter!
Betrifft: immer noch Laufzeitfehler
von: Caroline
Geschrieben am: 10.10.2003 12:46:41
Hey Udo,
"" hab ich entfernt, aber ich krieg noch immer die gleiche Fehlermeldung?!
Noch ein heißer Tipp, woran es liegen könnte?
Gruß,
Caroline
Betrifft: AW: immer noch Laufzeitfehler
von: RAnton
Geschrieben am: 10.10.2003 14:13:15
Hallo Caroline,
kannst du mal erklären was du mit dieser Zeile erreichen willst und wie die Werte bevor die Zeile ausgeführt wird sind.
Range("Cells(anzahl_datensaetze + 3, 3), Cells(anzahl_datensaetze + 3, anzahl_monate + 2)")
Was steht in anzahl_datensaetze und anzahl_monate
Gruß
RAnton
Betrifft: AW: immer noch Laufzeitfehler
von: Caroline
Geschrieben am: 10.10.2003 15:01:04
Hallo RAnton,
Ich baue mir durch Abfrage eines End- und eines Starttermins eine Tabelle die etwa so aussieht
Monat Nov Dez Jan Feb ...
Produkt a 2 4 8 9 ...
Dies möchte ich dann aber gerne als Säulendiagramm auf einem anderen Tabellenblatt haben
Zur Erstellung dieses Diagramms muss ich die Quelle der Werte hiermit setzen:
ActiveChart.SetSourceData Source:=Sheets("Daten für Termin Graphik").Range("C29:F29"), PlotBy:=xlColumns
Da ich aber kein festes Range habe, sondern die Tabelle dynamisch aufgebaut wird, muss ich innerhalb des Range mit der Cells-Methode arbeiten, damit ich Variablen für die Spalten und Zeilen nutzen kann.
Hierfür benötige ich anzahl_monate (-> ist Int-Wert, der die Anzahl der Spalten der Tabelle beinhaltet)
anzahl_datensaetze ist auch ein Int-Wert, der einmal ermittelt wird und später(wie auch hier) nur dafür benötigt wird, um die richtige Zeile zu finden.
Aber die Cells-Methode führt hier leider immer zu genannter Fehlermeldung...
Hier mal ein Code-Ausschnitt für den Diagrammaufbau:
-------------------------------------------------------------------------------------
als Beispielwert könnten sein:
anzahl_datensaetze = 16
anzahl_monate = 4
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Daten für Termin Graphik").RangeRange(Cells(3 + anzahl_datensaetze + 3, 3), Cells(3 + anzahl_datensaetze + 3, 3 + anzahl_monate + 2)), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Termin Graphik"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Handbuch"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Monate"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Anzahl"
End With
ActiveChart.HasDataTable = False
ActiveChart.ShowWindow = False
ActiveChart.Legend.Delete
etc...
Betrifft: AW: immer noch Laufzeitfehler
von: RAnton
Geschrieben am: 10.10.2003 15:32:51
Hallo Caroline
das hier
.RangeRange(Cells(3 + anzahl_datensaetze + 3, 3), Cells(3 + anzahl_datensaetze + 3, 3 + anzahl_monate + 2)),
müsstest du ersetzen durch
.Cellse(Cells(3 + anzahl_datensaetze + 3, 3), Cells(3 + anzahl_datensaetze + 3, 3 + anzahl_monate + 2)),
unter der Annahme, daß in den Zellen auch Integerwerte befinden.
Gruß
RAnton
Betrifft: AW: immer noch Laufzeitfehler
von: Caroline
Geschrieben am: 10.10.2003 15:51:41
Hallo RAnton,
In den Zellen sind Integerwerte...
Ich kenne cellse() gar nicht, hab's aber einfach mal probiert, aber es funktioniert nicht. Es kommt immer noch die Fehlermeldung...
Ich hab hier mal die Datei hochgeladen. Einfach nur das Makro Graphik_aktualisieren ausfuehren, als Start- und Endedatum einfach mal 1.8.03 und 1.2.04 wählen... die Fehlermeldung kommt dann von ganz alleine ;-)
Der Code oberhalb des Kommentars "zum Eigentlichen: Diagramme erstellen!" ist ok und macht was er soll. Und dann scheitert alles an der richtigen Wertübergabe der Zellen.
hier die datei:
https://www.herber.de/bbs/user/1387.xls
Ich danke Dir für Deine Hilfe! Bin VBA-Anfänger und stocher bei der Fehlersuche ziemlich im Dunkeln...
Caroline
Betrifft: habe Lösung gefunden!
von: Caroline
Geschrieben am: 10.10.2003 17:09:14
Danke Euch allen für die Hilfe, aber ich habe jetzt die Lösung von jemandem bekommen:
Falls es Euch jetzt auch "gepackt" hat, hier die Lösung:
Range(Sheets("Daten für Termin Graphik").Cells(3 + anzahl_datensaetze + 3, 3), Sheets("Daten für Termin Graphik").Cells(3 + anzahl_datensaetze + 3, 3 + anzahl_monate + 2))
Vielen Dank,
besonders an RAnton