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

Diagramm mit Range variablen Bereich zuordnen

Diagramm mit Range variablen Bereich zuordnen
25.08.2004 12:13:33
Alex
Hallo,
ich habe (wie wohl alle die hier reinschreiben) ein Problem.
Ich möchte gern ein Diagramm erstellen, welches Daten aus einem immer wieder verschieden langen Datenbereich nehmen soll. Ich hab erstmal einen Zellbereich ausgewählt und dann ein Diagrmm erstellt. Das alles natürlich als Makro aufgezeichnet und nun möchte ich gern bei dem "Range" Variablen zuordnen, um vorher bestimmen zu können, wie lang der Bereich ist, wofür ein Diagramm erstellt werden soll.
Kann ich bei *** anstatt ("G2:H37") auch Variablen einsetzen?

Sub diagramm()
Charts.Add
ActiveChart.ChartType = xlColumnClustered                ***
ActiveChart.SetSourceData Source:=Sheets("Anlagen").Range("G2:H37"), PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Ergebnis"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Anlagen"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Tonnen"
End With
ActiveChart.HasLegend = False
ActiveSheet.Shapes("Diagramm 12").IncrementLeft 185.25
ActiveSheet.Shapes("Diagramm 12").IncrementTop 291.75
ActiveWindow.Visible = False
End Sub

Ich bin für jeden Tipp dankbar.
Alex
AW: Diagramm mit Range variablen Bereich zuordnen
Wolfgang
Anstelle von: Range("G2:H37")
Range(Cells(Zeilenvariable_1, Spaltenvariable_1), Cells(Zeilevariable_2, Spaltenvariable_2))
Gruß Wolfgang
AW: Diagramm mit Range variablen Bereich zuordnen
Alex
Danke für die schnelle Antwort.
Ich hab es nun wie folgt geändert (erstmal mit festen Werten zum testen):
ActiveChart.SetSourceData Source:=Sheets("Anlagen").Range(Cells(2, 7), Cells(37, 8)), PlotBy _
:=xlColumns
Nun bekomme ich allerdings die Fehlermeldung:
Laufzeitfehler '1004'
Die Methode 'Cells' für das Objekt '_Global' ist fehlgeschlagen.
Was kann ich da tun?
AW: Diagramm mit Range variablen Bereich zuordnen
Wolfgang
Sorry Alex,
war mein Fehler. Auf diese Art und Weise gehts jetzt.
Source:=ThisWorkbook.Sheets("Anlagen").Range(Cells(zeile1, spalte1), Cells(zeile2, spalte2))
Gruß
Wolfgang
Anzeige
AW: Diagramm mit Range variablen Bereich zuordnen
Alex
Wieder danke für die schnelle Antwort, allerdings habe ich immernoch das gleiche Problem. Wenn ich mit F8 die Einzelschritte ausführe, dann erstellt er brav das Diagramm auf einem neuen Tabellenblatt, aber sobald er die Zeile erreicht, in der ich das geändert habe, spuckt er mir die gleiche Fehlermeldung wieder aus.
AW: Diagramm mit Range variablen Bereich zuordnen
wolfgang
Hallo Alex,
das kommt mir auch etwas seltsam vor, da ich es bei mir getestet hab und das ganze einwandfrei lief. Kannst du mir die Datei vielleicht mal hochladen, dann schau ich mir den Code im Kontxt mal nochmal an.
Gruß
Wolfgang
AW: Diagramm mit Range variablen Bereich zuordnen
GerdZ
Hallo Alex,
bei Cells(zeile, spalte) wird kein Bezug angegeben, dadurch bezieht sich Cells auf das aktive Blatt der aktiven Arbeitsmappe. Da aber eine Zeile vorher ein Diagrammblatt erzeugt wird, was dadurch zum aktiven Blatt wird, gibt es im aktiven Blatt keine Zellen.
With Sheets("Anlagen")
ActiveChart.SetSourceData Source:=.Range(.Cells(2, 7), .Cells(37, 8)), PlotBy:=xlColumns
End With
sollte funktionieren.
Gruß
Gerd
Anzeige
AW: Diagramm mit Range variablen Bereich zuordnen
Alex
Danke, jetzt klappt es schon fast perfekt.
Es wird nun ein Diagramm erstellt und auch dorthin, wo es hin soll, aber sobald die Zeile
ActiveSheet.Shapes("Diagramm 14").IncrementLeft 220.5
ActiveSheet.Shapes("Diagramm 14").IncrementTop 312#
Windows("Fahrplanauswertung.xls").SmallScroll Down:=12
ActiveSheet.Shapes("Diagramm 14").ScaleWidth 1.14, msoFalse, _
erreicht wird, bricht er ab. Kann es sein, dass das Diagramm14 immer weiter hochzählt?
Vorhin stand da noch Diagramm12 etc.
Hochladen kann ich Datei leider nicht, es ist scheinbar nur möglich Dateien mit ca. 300KB zu verschicken und die Datei ist 2,2MB groß.
Noch eine Frage nebenbei, kann man das ausblenden, dass er, wenn eine Prozedur ausgeführt wird, immer zwischen den Tabellenblättern hin und her springt und der Cursor sich wie wild bewegt?
Ich bin erst seit 4 Tagen dabei VBA zu lernen und hab sonst nur ein paar Formeln in Excel benutzt, hoffe ich stelle keine zu dummen Fragen.
Anzeige
AW: Diagramm mit Range variablen Bereich zuordnen
GerdZ
Hallo Alex,
das Hin- und Herspringen kann man mit
Application.ScreenUpdating = False
am Anfang der Prozedur ausschalten.
Am Ende der Prozedur muß die Aktualisierung mit
Application.ScreenUpdating = True
wieder eingeschaltet werden.
Die Diagramme werden bei jedem Charts.Add um eins hochgezählt.
In Excel 2000 besteht ActiveChart.Name aus dem Blattnamen und dem Diagrammnamen.
Bei Diagrammen im Blatt "Ergebnis" müßte folgender Code funktionieren.
Dim sChartName As String
sChartName = Mid$(ActiveChart.Name, 10)
ActiveSheet.Shapes(sChartName).IncrementLeft 185.25
Gruß
Gerd
Anzeige
AW: Diagramm mit Range variablen Bereich zuordnen
Alex
Danke, jetzt funktioniert alles.
Ich habe nun nur noch ein einziges Problem.
Das Diagramm ist leider nicht farbig wie sonst, sondern schwarz-weiss.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige