Herbers Excel-Forum - das Archiv

caroline

    Bild

    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

    Bild

    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!
    Bild

    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
    Bild

    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
    Bild

    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...
    Bild

    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
    Bild

    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
    Bild

    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
     Bild