Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Graph zeichnen mit VBA

Graph zeichnen mit VBA
28.08.2005 14:00:44
windalf
Hallöchen @ all
Ich versuche gerade ein Diagram zu plotten/basteln. Klappt soweit auch ganz gut mein Problem stellt sich jetzt wie folgt da...
ActiveChart.SeriesCollection(1).Values = "={4711.0815,1.3}"

Statt da Dummywerte einzutragen will ich da erst in VBA errechnete Werte eintragen. Angenommen ich habe diese Werte in einem Array A vorliegen wie bekomme ich die da am besten rein? Muss ich da erst einen String basteln und dann gleich values setzen oder gibt es da eine elegantere Möglichkeit?
(Anmerkung: Die Werte sind wirklich errechnet und tauchen nirgendwo auf dem Tabellenblatt auf. Hiervon werden nur Eingangsdaten eingelesen, also bitte keine Tipps in der art lies die Werte doch mit einem "Range" ein denn genau das will ich ja nicht)
Danke für alle Tips
greetz Windalf
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Graph zeichnen mit VBA
28.08.2005 14:14:18
Nepumuk
Hi Windalf,
ein kleines Beispiel:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub diagramm_machen(a, b)
    Dim cht_benkw As ChartObject
    Set cht_benkw = Worksheets("Tabelle1").ChartObjects.Add(200, 100, 400, 250)
    With cht_benkw
        .Name = "martine5"
        With .Chart
            .ChartType = xlXYScatterSmooth
            .SeriesCollection.NewSeries
            .SeriesCollection(1).XValues = a
            .SeriesCollection(1).Values = b
            .Legend.Delete
        End With
    End With
End Sub

Public Sub test()
    Dim x(10, 0), y(10, 0)
    Dim iIndex As Integer
    For iIndex = 0 To 9
        x(iIndex, 0) = iIndex ^ 2
        y(iIndex, 0) = iIndex * 2
    Next
    Call diagramm_machen(x, y)
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Graph zeichnen mit VBA
28.08.2005 18:18:26
windalf
Hi Nepumuk,
danke für die Antwort... Ich komme aus der c++ Ecke und hätte nicht gedacht das der so einfach die Zuweisung eines Arrays frist bie .
Manchmal ist das Leben einfacher als man denkt ;-)
besten Dank...
;
Anzeige
Anzeige

Infobox / Tutorial

Graph zeichnen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um einen Graphen in Excel mit VBA zu zeichnen, kannst Du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".
  3. Erstelle eine Subroutine:

    • Füge den folgenden Code in das Modul ein:
    Sub DiagrammErstellen(a As Variant, b As Variant)
       Dim chtObjekt As ChartObject
       Set chtObjekt = Worksheets("Tabelle1").ChartObjects.Add(200, 100, 400, 250)
       With chtObjekt
           .Chart.ChartType = xlXYScatterSmooth
           .Chart.SeriesCollection.NewSeries
           .Chart.SeriesCollection(1).XValues = a
           .Chart.SeriesCollection(1).Values = b
           .Chart.Legend.Delete
       End With
    End Sub
    
    Public Sub Test()
       Dim x(10, 0), y(10, 0)
       Dim iIndex As Integer
       For iIndex = 0 To 9
           x(iIndex, 0) = iIndex ^ 2
           y(iIndex, 0) = iIndex * 2
       Next
       Call DiagrammErstellen(x, y)
    End Sub
  4. Führe die Test-Subroutine aus:

    • Klicke im VBA-Editor auf F5, um die Test-Subroutine auszuführen. Dein Diagramm wird auf "Tabelle1" angezeigt.

Häufige Fehler und Lösungen

  • Fehler: Diagramm wird nicht angezeigt
    Lösung: Stelle sicher, dass Du die richtige Arbeitsblattbezeichnung in Worksheets("Tabelle1") verwendest.

  • Fehler: Werte werden nicht angezeigt
    Lösung: Überprüfe, ob die Arrays a und b korrekt initialisiert sind und die Werte tatsächlich berechnet werden.

  • Fehler: Typkonflikt bei Arrays
    Lösung: Achte darauf, dass die Arrays die gleiche Dimension haben und korrekt deklariert sind.


Alternative Methoden

Du kannst auch Excel-Funktionen verwenden, um Graphen zu zeichnen:

  • Excel Funktion Zeichnen: Du kannst Daten in Excel-Tabelle eingeben und die integrierte Diagrammfunktion nutzen.
  • VBA Graphics: Verwende Shapes.AddLine oder Shapes.AddShape, um individuelle Grafiken zu zeichnen.

Praktische Beispiele

Hier sind einige Beispiele, wie Du verschiedene Graphen zeichnen kannst:

  1. Funktionsgraph zeichnen:

    Sub Funktionsgraph()
       Dim x(0 To 100) As Double
       Dim y(0 To 100) As Double
       Dim i As Integer
       For i = 0 To 100
           x(i) = i / 10
           y(i) = Sin(x(i))
       Next i
       Call DiagrammErstellen(x, y)
    End Sub
  2. Kurve zeichnen:

    Sub KurveZeichnen()
       Dim x(0 To 100) As Double
       Dim y(0 To 100) As Double
       Dim i As Integer
       For i = 0 To 100
           x(i) = i / 10
           y(i) = x(i) ^ 2
       Next i
       Call DiagrammErstellen(x, y)
    End Sub

Tipps für Profis

  • Nutze With...End With, um den Code leserlicher zu gestalten.
  • Experimentiere mit verschiedenen ChartType-Einstellungen, um verschiedene Graphen darzustellen.
  • Verwende Fehlerbehandlung (On Error), um den Code robuster zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich einen Graphen in einer anderen Excel-Version zeichnen?
Die Schritte sind in den meisten Excel-Versionen ähnlich, jedoch können sich die Menüführungen leicht unterscheiden.

2. Kann ich Daten aus einer Tabelle in den Graphen einfügen?
Ja, Du kannst Daten aus einer Tabelle verwenden, indem Du die Werte aus einem Range-Objekt einliest, jedoch wurde dies im ursprünglichen Thread ausgeschlossen.

3. Gibt es eine Möglichkeit, den Graphen automatisch zu aktualisieren?
Ja, Du kannst ein Ereignis verwenden, um den Graphen bei Änderungen in den Eingangsdaten automatisch zu aktualisieren.

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