Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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
Inhaltsverzeichnis

Diagramm in userform

Diagramm in userform
05.10.2017 10:00:27
Max
Guten Tag meine Damen und Herren,
Ich hatte schonmal ein Thread zu diesem Thema geöffnet, aber es kamen keine Antworten. Also versuche ich es nochmal..
Ich habe auf Excel 'Tabelle 1' eine Datenreihe gegeben. Nun möchte ich aber auf eine Userform mit einem ChartSpace ein liniendiagramm zeichnen lassen. Die Messdaten sind in B18:B39 und D18:D39 aufgelistet. Ich möchte auch das die Skalierung der Achsen automatisch gewählt wird. Ein Chartspace habe ich bereits mit Hilfe des Werkzeugtools hinzugefügt, aber ich weiß nicht, wie ich die Werte mit dem Chartspace in Verbindung setze und diese zeichnen lasse. Und wie benenne ich die Achsen?
Es geht mir lediglich erstmal nur darum, dass der Graph richtig gezeichnet wird.
Viel Dank für eure Antworten schon mal!
Gruß, Max

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm in userform
05.10.2017 15:19:36
Maxoo
Vielen Dank Nepumuk!
Iwie verstehe ich das nicht ganz? Wie kann man denn zu einem Punkt zwei Werte zuordnen. Das hast du ja nicht getan? Oder erwa doch? Du hast ja jeweils immer nur eine Spalte ausgewählt, aber wie mach ich das wenn ich einen Graphen möchte, deren Werte nicht in einer Spalte sind, sondern in zwei verschiedenen. Den Befehl "Application.Transpose" sehe ich auch zum ersten Mal....
Gruß Max
AW: Diagramm in userform
05.10.2017 15:52:12
Nepumuk
Hallo Max,
das ist ein einfaches Liniendiagramm, da brachst du für eine Datenreihe nur eine Spalte. Zwei Datenreihen benötigst du bei einem Punktdiagramm mit interpolierten Linien.
Application.Transpose benötigt das Diagramm um aus den zweidimensionalen Bereich (1 Spalte 22 Zeilen) ein eindimensionales Array (22 Spalten) zu machen.
Sind die Daten von B18:B39 und D18:D39 nur eine Datenreihe?
Gruß
Nepumuk
Anzeige
AW: Diagramm in userform
05.10.2017 16:41:21
Maxoo
Ja ich brauche ein Punktdiagramm sorry!! Dachte da gibt es keine Unterschiede. Eigentlich habe ich zwei Datenreihen. 1. B17 bis B39 und D17 bis D39 und 2. B17 bis B39 und G17 bis G39. Die Werte in B sind jeweils die x Koordinaten und die anderen jeweils die y Koordinaten. Ich hoffe du weißt wie ich es meine. Vielen Dank!
Gruß,
Max
AW: Diagramm in userform
05.10.2017 16:41:23
Maxoo
Ja ich brauche ein Punktdiagramm sorry!! Dachte da gibt es keine Unterschiede. Eigentlich habe ich zwei Datenreihen. 1. B17 bis B39 und D17 bis D39 und 2. B17 bis B39 und G17 bis G39. Die Werte in B sind jeweils die x Koordinaten und die anderen jeweils die y Koordinaten. Ich hoffe du weißt wie ich es meine. Vielen Dank!
Gruß,
Max
Anzeige
AW: Diagramm in userform
05.10.2017 17:25:49
Nepumuk
Hallo Max,
teste mal:
Private Sub UserForm_Activate()
    
    Dim oChart As OWC11.ChChart
    Dim oSeries1 As OWC11.ChSeries, oSeries2 As OWC11.ChSeries
    Dim oAxis1 As OWC11.ChAxis, oAxis2 As OWC11.ChAxis
    
    Set oChart = ChartSpace1.Charts.Add
    With oChart
        .HasLegend = True
        .Legend.Position = chLegendPositionBottom
        .HasTitle = True
        .Title.Caption = "Sales & Discounts"
    End With
    
    Set oSeries1 = oChart.SeriesCollection.Add
    With oSeries1
        .Caption = "Sales"
        .Type = chChartTypeScatterSmoothLine
        Call .SetData(chDimXValues, chDataLiteral, _
            Application.Transpose(Tabelle1.Range("B18:B39").Value))
        Call .SetData(chDimYValues, chDataLiteral, _
            Application.Transpose(Tabelle1.Range("D18:D39").Value))
    End With
    
    Set oSeries2 = oChart.SeriesCollection.Add
    With oSeries2
        .Caption = "Discount"
        .Type = chChartTypeScatterSmoothLine
        Call .SetData(chDimXValues, chDataLiteral, _
            Application.Transpose(Tabelle1.Range("B18:B39").Value))
        Call .SetData(chDimYValues, chDataLiteral, _
            Application.Transpose(Tabelle1.Range("G18:G39").Value))
    End With
    
    Set oAxis1 = oChart.Axes(chAxisPositionLeft)
    With oAxis1
        .Scaling.Minimum = 0
        .HasMajorGridlines = True
        .HasTitle = True
        .Title.Caption = "Wert"
    End With
    
    Set oAxis2 = oChart.Axes(chAxisPositionBottom)
    With oAxis2
        .Scaling.Minimum = 0
        .HasMajorGridlines = True
        .HasTitle = True
        .Title.Caption = "Kategorie"
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Diagramm in userform
11.10.2017 10:57:05
Max
Das funktioniert vielen dank, jedoch sind meine Werte (20 Stück) in kleinen Abständen.
Beispiel: y-Werte: 1.Datenreihe 20 Werte zwischen 38000 und 385000 und die 2. Datenreihe befindet sich auch in diesem Bereich, nur mit geringer Abweichung zu den Werten aus der 1. Datenreihe! Das heißt die Daten liegen "aufeinander", weil das Koordinatensystem den Bereich 0 - 40000 in der y Achse anzeigt. Wie kann ich das skalieren, damit z.B. nur die Werte 37500 bis 38500 sichtbar sind. Vielen Dank!
Gruß, Max
AW: Diagramm in userform
11.10.2017 16:37:17
Nepumuk
Hallo Max,
das kannst du über die Minimum- und Maximum-Eigenschaft der Achse einstellen.
Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige