Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
Fehler bei SetSourceData
Stephan
Liebe Forengemeinde,
ich bin ratlos, weil ich einem Fehler nicht auf die Spur komme.
Ich lege per
With Charts(i)
.SetSourceData Source:=Range(quelle), PlotBy:=xlRows
End With
den Quellbezug für ein Diagramm fest. Die Variable quelle habe ich als Variant definiert, sie hat in dem Beispiel den Wert "$E$1:$U$1,$E$44:$U$44".
Nun erhalte ich bei dem Befehl SetSourceData einen
Laufzeitfehler 1004: Die Methode Range für das Objekt _global ist fehlgeschlagen
Soweit so schlecht. Ich habs auch schon mit:
With Charts(i)
.SetSourceData Source:=Sheets("Daten").Range(quelle), PlotBy:=xlRows
End With
probiert. Dann bekomm ich einen anwendungs- oder objektorientierten Fehler ?!?!
Kurios ist: wenn ich im Debugmodus, nachdem wegen des Fehlers gestoppt wurde, einfach auf Fortsetzen drücke, wird der Befehl ohne Fehlermeldung ausgeführt !
Hintergrund des ganzen: Ich muss einem Diagramm eine Quelle zuweisen, die variabel ist und bei der sich Zeile und Spalte während das Makro ausgeführt wird, ändern.
Vielleicht gibts ja noch eine andere Möglichkeit, die Quelle festzulegen, evtl. mit Namen zu arbeiten und die vorher festzulegen und dann zu verändern?
Hat jemand eine Idee, wie ich weiterkomme !?
Vielen Dank schonmal
Stephan
AW: Fehler bei SetSourceData
04.05.2010 13:21:21
Rudi
Hallo,
such mal auf Bevelys HP. Die hat einiges zu dynamischen Diagrammen.
http://beverly.excelhost.de/
Gruß
Rudi
AW: Fehler bei SetSourceData
04.05.2010 15:53:02
Stephan
Hi Rudi,
danke für den Tipp. Ich habs mit Cells usw. versucht wie auf der Seite vorgeschlagen und habe den selben Fehler bekommen.
Mittlerweile habe ich die Fehlerquelle entdeckt (siehe Posting unten).
Grüße
Stephan
AW: Fehler bei SetSourceData
04.05.2010 13:36:37
Beverly
Hi Stephan,
kann es sein, dass beim Erstellen des Wertebereichs mit deinem Code in den Zellen noch keine Werte stehen? Es muss auf jeden Fall in mindestens 1 Zelle ein Wert stehen.


Anzeige
AW: Fehler bei SetSourceData
04.05.2010 15:53:59
Stephan
Hi Beverly!
Danke für den Tipp. Ich hab versuchsweise feste Werte in die betroffenen Zellen geschrieben. Das Ergebnis war das gleiche.
Mittlerweile habe ich die Fehlerquelle entdeckt (siehe Posting unten).
Grüße
Stephan
AW: Fehler bei SetSourceData
04.05.2010 16:01:41
Stephan
Ich hab mittlerweilen den Fehler eingekreist, indem ich quasi per "reverse engineering" meinen eigenen Code bei jedem Schritt einem Probelauf unterzogen habe, bis der Fehler nicht mehr aufgetreteten ist.
Das Ergebnis ist mehr als verblüffend für mich. Der Fehler findet sich an ganz einer anderen Stelle, an der ich in andere Tabellenblätter, die keinerlei Bezug zu den Diagrammen haben, damit einen Hyperlink einfüge:
ActiveSheet.Hyperlinks.Add Anchor:=Range("G6"), Address:="", SubAddress:= _
"Register!A1", TextToDisplay:="zurück"
Wenn ich diese Codezeile weglasse, taucht der Fehler nicht mehr auf.!
Wie gesagt. Weder das Tabellenblatt, auf dem ich diesen Hyperlink einfüge, noch das Tabellenblatt Register haben irgendeinen Bezug zu dem Diagramm, bei dessen Quellenzuweisung der Fehler später im Code auftritt.
Verstehen tu ich das nicht. Aber es ist reproduzierbar. Code drin, Fehler taucht auch. Code auskommentiert, Fehler taucht nicht mehr auf!
Wer mir das erklären kann, ist mein Excelgott !
Grüße
Stephan
Anzeige
AW: Fehler bei SetSourceData
04.05.2010 16:03:07
Stephan
fehler gefunden, aber problem noch nicht gelöst, somit weiter offen!
AW: Fehler bei SetSourceData
04.05.2010 16:27:22
Beverly
Hi Stephan,
dann solltest du deine Mappe mal hochladen, sodass man das nachvollziehen kann.


AW: Fehler bei SetSourceData
05.05.2010 08:31:50
Stephan
Hallo Bev,
okay. ich hab die datei etwas abgespeckt und hochgeladen. das wäre super, wenn sich damit jemand mit beschäftigen möchte und den fehler suchen.
https://www.herber.de/bbs/user/69415.xls
https://www.herber.de/bbs/user/69416.zip
vielleicht zur erklärung, was das ding macht: es geht darum, einen bericht aus sap auf verschiedene weise aufzubereiten, das layout zu ändern, einen konsolidierten bericht zu erstellen und diagramme aus den daten des berichtes.
dazu wird die rohdatei (testroh) importiert und bearbeitet.
die einzelnen module im ablauf:
start/menu startet die userform
import importiert die rohdatei, die alle kostenstellen enthält
formatieren erstellt aus der rohdatei über ein filterfunktion einen bericht für jede kostenstelle
formatieren2 kümmert sich um das layout der berichte. hier steht ganz unten die betreffende zeile, die den hyperlink einfügt und die für den fehler verantwortlich ist
konsolidieren erzeugt einen konsolidierten bericht aus der rohdatei
Datenblatt erstellen und TabErgebnis editieren die Tabelle Daten. Dort werden Daten aus den Berichten eingetragen berechnet und angepasst. Auf diese Tabelle Daten beziehen sich die Diagramme
Diagramm1 ändert die Quelle der Daten. Hier tritt der Fehler auf beim SelectSourceData.
Ich bin für jeden Hinweis dankbar! Danke schonmal im Voraus!
Viele Grüße
Stephan
Anzeige
AW: Fehler bei SetSourceData
05.05.2010 08:33:17
Stephan
ah, hab ich vergessen.
der erste link ist die rohdatei, die importiert wird
der zweite link ist die eigentliche mappe
danke :-)
AW: Fehler bei SetSourceData
05.05.2010 09:28:41
Beverly
Hi Stephan,
wie ich bereits geschrieben habe - Ursache: in keiner Zelle des zu übergebenden Datenbereichs steht ein Wert, folglich Laufzeitfehler. Ändere die Formel in Zeile 44 (dies ist die 1. Zeile die bei der Suche gefunden wird und den Fehler auslöst) in
=WENN(E43>0;E43/E12;0)

dann läuft der Code fehlerfrei durch.


Anzeige
AW: Fehler bei SetSourceData
05.05.2010 10:43:37
Stephan
Hi Beverly,
vielen Dank, dass Du Dir die Mühe machst und das anschaust.
Ich hab die Formel nach Deiner Anweisung geändert. Der Fehler tritt aber immer noch auf.
Es bleibt weiterhin die verblüffende Tatsache, dass der Auslöser des Fehler ganz woanders, nämlich bei
der Erstellung des Hyperlinks im Modul formatieren2 liegt.
https://www.herber.de/bbs/user/69425.zip
Grüße
Stephan
AW: Fehler bei SetSourceData
05.05.2010 12:54:31
Beverly
Hi Stephan,
wenn ich das Makro "Diagramm" im Einzelschrittmodus laufen lassen, dann läuft dieser Code nach der entsprechenden Formeländerung fehlerlos - wie ich schon geschrieben hatte. Du musst bitte mal genau beschreiben, wie du vorgehst, also welche Schritte du nacheinander ausführst.


Anzeige
AW: Fehler bei SetSourceData
05.05.2010 17:10:23
Stephan
Hi Bev,
ich starte die ABA-upload.xls mit Makros. Daraufhin erscheint die UserForm. Da geh ich auf IMPORT und wähle als zu importierende Datei die Testroh.xls (erster Link im obigen Posting).
Daraufhin bricht das Makro ab, wenn die Hyperlinks wie oben beschrieben eingefügt werden. Verzichte ich auf die Hyperlinks, bricht das Makro nicht ab und läuft ohne Fehler durch.
Die Änderung der Formel hat keine Auswirkung.
Der Code kann nach dem Laufzeitfehler mit Fortsetzen im Projektexplorer o h n e Fehler fortgesetzt werden. Der Befehl SetSourceData wird also ausgeführt, obwohl er vorher mit einem Laufzeitfehler1004 abgebrochen wurde.
Wenn ich den Code Diagramm in Einzelschritten ausführe tritt der Fehler auch nicht auf ... seltsames Gebaren.
Grüße
Stephan
Anzeige
AW: Fehler bei SetSourceData
05.05.2010 18:13:01
Beverly
Hi Stephan,
der Code bricht nicht bei "Importieren" sondern bei "Bericht erstellen" ab.
Ändere diese Zeile:

.SetSourceData Source:=Range("Daten!" & quelle), PlotBy:=xlRows



AW: Fehler bei SetSourceData
06.05.2010 13:40:22
Stephan
Hi Bev!
Vielen Dank nochmal. Dein letzter Vorschlag hats leider auch nicht getan, aber er hat mich auf den richtigen Weg gebracht.
Das Problem war die Quellenzuordnung mittels String. Es scheint wohl besser zu sein, gleich Range-Objekte zu nehmen.
Ich hab jetzt die Zuweisung der Quelle nicht über ein String gemacht, sondern direkt über ein Range-Objekt. Das hatte ich vorher schonmal getestet, was mir aber gefehlt hatte, war der UNION-Befehl, um zwei Ranges zu vereinigen.
Das ganze sieht jetzt so aus:
Set quelleKsten = Range(Cells(1, ersteKSt), Cells(1, 5 + AnzKSt))
Set quelleWerte = Range(Cells(reiheWerte, ersteKSt), Cells(reiheWerte + anzreihen - 1, 5 + AnzKSt))
Set quelle = Union(quelleKsten, quelleWerte)
With Charts(i)
.SetSourceData Source:=quelle, PlotBy:=xlRows
End With
Und damit läuft es stabil und ohne Fehler.
Vielen Dank an alle, die sich bemüht haben, den Fehler zu finden!
Viele Grüße
Stephan
Anzeige

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige