Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige
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?
Anzeige
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
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.
Anzeige
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.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Diagramm mit variablen Bereichen in Excel erstellen


Schritt-für-Schritt-Anleitung

Um ein Diagramm mit 3 variablen oder variablen Bereichen in Excel zu erstellen, befolge diese Schritte:

  1. Öffne den Visual Basic for Applications (VBA) Editor: Drücke ALT + F11.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".
  3. Schreibe den folgenden Code:
Sub DiagrammMitVariablen()
    Dim zeile1 As Long, spalte1 As Long, zeile2 As Long, spalte2 As Long
    zeile1 = 2 ' Startzeile
    spalte1 = 7 ' Startspalte (G)
    zeile2 = 37 ' Endzeile
    spalte2 = 8 ' Endspalte (H)

    Application.ScreenUpdating = False
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    With Sheets("Anlagen")
        ActiveChart.SetSourceData Source:=.Range(.Cells(zeile1, spalte1), .Cells(zeile2, spalte2)), PlotBy:=xlColumns
    End With
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Ergebnis"
    Application.ScreenUpdating = True
End Sub
  1. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle "DiagrammMitVariablen" und klicke auf "Ausführen".

Häufige Fehler und Lösungen

Fehler: Laufzeitfehler '1004'
Wenn du die Fehlermeldung erhältst, dass die Methode 'Cells' für das Objekt '_Global' fehlgeschlagen ist, kann dies daran liegen, dass das aktive Blatt nicht korrekt eingestellt ist. Verwende immer den vollständigen Bezug zu den Zellen wie im Beispiel oben.

Fehler: Diagramm wird nicht erstellt
Stelle sicher, dass das Arbeitsblatt existiert und der Name korrekt eingegeben ist. Verwende ThisWorkbook.Sheets("Anlagen"), um sicherzustellen, dass du auf das richtige Arbeitsblatt zugreifst.


Alternative Methoden

Eine andere Methode, um ein Diagramm mit drei variablen zu erstellen, ist die Verwendung von Excel-Datenmodellen oder Pivot-Tabellen. Diese ermöglichen es dir, dynamische Diagramme zu erstellen, die sich automatisch aktualisieren, wenn sich deine Daten ändern.

  1. Erstelle eine Pivot-Tabelle aus deinem Datenbereich.
  2. Füge das Diagramm direkt aus der Pivot-Tabelle hinzu.

Praktische Beispiele

Hier ist ein einfaches Beispiel, um ein Excel Diagramm mit variablen Bereichen zu erstellen:

  • Daten: Angenommen, du hast in deinem "Anlagen"-Blatt Werte in den Zellen G2:H37.
  • Diagrammtyp: Du kannst verschiedene Diagrammtypen wie Balken, Linien oder Säulen verwenden, um unterschiedliche Informationen darzustellen.

Verwende denselben VBA-Code, um unterschiedliche Diagrammtypen auszuprobieren, indem du xlColumnClustered durch xlLine, xlPie usw. ersetzt.


Tipps für Profis

  • Benennung der Diagramme: Um sicherzustellen, dass deine Diagramme nicht durcheinander geraten, benenne sie beim Erstellen um, indem du ActiveChart.Name = "MeinDiagramm" hinzufügst.
  • Farben anpassen: Wenn dein Diagramm schwarz-weiß ist, kannst du die Farbschemata über die Diagrammformatierung ändern. Gehe auf "Diagrammtools" und wähle "Design" aus.

FAQ: Häufige Fragen

1. Wie kann ich die Chart-Formatierung anpassen?
Du kannst die Formatierung des Diagramms über die Diagrammtools in der Excel-Oberfläche anpassen, nachdem das Diagramm erstellt wurde.

2. Was mache ich, wenn das Diagramm nicht aktualisiert wird?
Überprüfe, ob du die Datenquelle korrekt definiert hast und ob die Zellen, auf die verwiesen wird, vorhanden sind und gültige Daten enthalten.

3. Kann ich auch andere Diagrammtypen verwenden?
Ja, du kannst jeden Diagrammtyp verwenden, der in Excel verfügbar ist. Ändere einfach die ChartType-Eigenschaft im VBA-Code.

Mit diesen Informationen solltest du in der Lage sein, ein Diagramm mit 3 variablen in Excel zu erstellen und anzupassen. Viel Erfolg bei deinen Excel Charts!

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige