Excel Diagramm über Makro

OP #1202828
Lesenswert?

Servus,

ich habe wieder eine Frage zu Excel. Ich bin jetzt wieder ein Stück 
weiter. Jetzt habe ich aber ein neues Problem. Und zwar möchte ich jetzt 
ein Diagramm erstellen und das als Makro aufzeichen. Normale Makros habe 
ich schon erstellt und die funktionieren auch immer sehr gut. Nur bei 
Diagrammen habe ich Probleme. Ich habe mehrere Zeilen mit immer den 
gleichen Spalten. Nur die Zeilenmenge variiert. das heißt mal habe ich 
200 Zeilen mit daten, mal nur 100 usw. Ich will jetzt über ein Makro ein 
Diagramm erstellen. Ich gehe auf die Spalten die drin sein sollen, 
drücke
SHIFT, STRG und Pfeil nach unten gleichzeitig und so nimmt er alle 
vrfügbaren Zeilen. Dann erstelle ich das Diagramm. wenn ich das alles 
aber aufzeichbne und in einer ANDEREN Excel Datei machen will, fängt er 
an und sagt dann: Laufzeitfehler "9": Index außerhalb des gültigen 
Bereiches. Wenn ich auf Debugen drücke wird dieser Bereich gelb makiert:

ActiveChart.SetSourceData 
Source:=Sheets("test_20090225_222526_0000001"). _
        Range("B1:B1441,D1:D1441"), PlotBy:=xlColumns

Was kann ich da tun? Hängt das daran dass ich bei der neuen Excel Datei 
weniger oder eine andere Anzahl von Zeilen habe?

Wäre echt super wenn ihr mir helfen könntet
OP #1204153
Lesenswert?

Danke, das ist echt ein guter ´Tip mit den dynamischen Tabellen. Aber 
der Debugfehler taucht trotzdem noch auf. Ich habe zwar das Gefühl dass 
er jetz weiter kommt, aber immer kommt diese Meldung :

Laufzeitfehler 9: Index außerhalb des gültigen Bereiches

Problem:

ActiveChart.SetSourceData 
Source:=Sheets("test_20090228_222511_0000001"). _
        Range("B:D,G:H"), PlotBy:=xlColumns

weiß niemand was das heißen könnte? Ich kenne mich da nämlich gar nicht 
aus
Gast #1205455
Lesenswert?

hallo,

das ist ganz normal das andere Dateien damit nicht klar kommen.
In anderen Dateien findet er natürlich mit 
Sheets("test_20090225_222526_0000001") nicht.
Du musst das variabler gestalten, nur mit aufzeichnen kommt man dort 
nicht sehr weit...
versuch es mal mit:
 source=: activesheet.irgentwas oder activeworksheet (am besten gleich 
mal in der Hilfe suchen ;-)

Gruß
Gast #1205550
Lesenswert?

du wirst dir doch sicher deiner aufgezeichneten code im VBA-Editor 
anschauen, oder? (Alt+F11)
Mit dem "nur" aufgezeichneten makro kommt man schnell an die Grenzen, 
weil wie in deinem Fall Excel absolute Adressen, 
("test_20090225_222526_0000001") dein Dateinname aufzeichnet.
Wenn du dann dein Makro in einer anderen Datei ausführst, will VBA genau 
diese Datei, kannst aber nicht finden. Deshalb der Fehler.
Es wird für dich unumgänglich sein deinen code zu verstehen und dann auf 
deine Bedürfnisse anzupassen.

praktisch: ersetze

"test_20090225_222526_0000001"
gegen deinen neuen Dateinnamen (am einfachsten)

oder ersetze ihn gegen VBA-Objekte die allg. wirken activeworkbook... 
etc. siehe oben

Wenn ich was mit VBA machen muss wurstele ich auch immer ganz schön rum, 
die einschlägigen Foren wie herber könnten dir auch helfen. Die meisten 
Leute die hier unterwegs sind bekommen bei Basic ein Gänsehaut (nicht 
immer zu Unrecht)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren