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

Sekundärachse Organigramm

Sekundärachse Organigramm
29.08.2005 12:12:49
Matthias_FFM
Guten Tag Forum,
ich möchte ein benutzerdefiniertes Organigramm aufbauen, wobei sich die Skalierung der Sekundärachse an der dritten Werte-Reihe orientiert.
Das Makro läuft bis auf die Formatierung der Sekundärachse. Die folgede "Meckermeldung" wird ausgegeben: "die Methode "Axes" für das Objekt _Chart ist fehlgeschlagen.
Hier mein kleines Makro:

Sub Organigramm()
Dim cht As Chart
Set cht = Charts.Add
cht.ApplyCustomType ChartType:=xlBuiltIn, TypeName:= _
"Linie - Säule auf zwei Achsen"
cht.SetSourceData Source:=Sheets("Tabelle1").Range("B3:S6"), PlotBy _
:=xlRows
cht.Location Where:=xlLocationAsObject, Name:="Tabelle1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "test"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "testx"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "testy"
.Axes(xlCategory, xlSecondary).HasTitle = True
.Axes(xlValue, xlSecondary).HasTitle = True
End With
End Sub

Noch eine Frage: Wie kann ich das Organigramm dann im Tabellenblatt positionieren und die Größe festlegen.
Vielen Dank für Eure Hilfe....
Matthias

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sekundärachse Organigramm
29.08.2005 15:44:08
Herbert
hallo Matthias,
um die Achsenbeschriftungen einblenden zu können,
müssen die Achsen auch vorhanden sein...

Sub Organigramm()
Dim cht As Chart
Application.ScreenUpdating = False
Set cht = Charts.Add
With cht
.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Lines on 2 Axes"
.SetSourceData Source:=Sheets("Tabelle1").Range("B3:S6"), PlotBy _
:=xlRows
.Location Where:=xlLocationAsObject, Name:="Tabelle1"
With ActiveSheet.ChartObjects(1).Chart
.SeriesCollection(1).AxisGroup = 2
.HasAxis(xlCategory, xlSecondary) = True
.HasAxis(xlValue, xlSecondary) = True
.HasTitle = True
.ChartTitle.Characters.Text = "test"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "testx"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "testy"
.Axes(xlCategory, xlSecondary).CategoryType = xlCategoryScale
.Axes(xlCategory, xlSecondary).HasTitle = True
.Axes(xlCategory, xlSecondary).AxisTitle.Characters.Text = "sek.X-Achse"
.Axes(xlValue, xlSecondary).HasTitle = True
.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "sek.V-Achse"
End With
End With
ActiveSheet.[a1].Select
With Application
.SendKeys "{esc}"
.ScreenUpdating = True
End With
End Sub

gruß Herbert
Anzeige
AW: Sekundärachse Organigramm (noch offen)
29.08.2005 17:40:19
Matthias_FFM
Hallo Herbert....
Danke für die erste Hilfe.
Leider habe ich meine Frage nicht deutlich genung formuliert. Deine Lösung zeigt eine 2. X-Achse mit Skalierung und Bezug auf die dritte Werte-Reihe.
Ich brauche aber die Skalierung der 2. (=rechten) Y-Achse mit Bezug auf die Werte.
Wie könnte hierfür die Lösung aussehen?
Viele Grüße aus FFM
Matthias
AW: Sekundärachse Organigramm
29.08.2005 19:08:14
Herbert
das ist ja keine Lösung...
ich wußte ja gar nicht, was du genau willst...
lade am besten ein Beispiel hoch...
gruß Herbert
AW: Sekundärachse Organigramm (noch offen)
30.08.2005 14:13:51
Matthias_FFM
Hallo Herbert....
hier meine Beispieldatei...
https://www.herber.de/bbs/user/26192.xls
Die zweite Skalierung der X-Achse bringt keinen Sinn...
Danke
Matthias
Anzeige
AW: Sekundärachse Organigramm (noch offen)
30.08.2005 15:02:16
Herbert
und welchen Sinn soll sie bringen ?
gruß Herbert
AW: Sekundärachse Organigramm (noch offen)
30.08.2005 16:56:10
Matthias_FFM
Hallo Herbert...
die Grafik in der Beispieldatei entsteht aus Deinem Vorschlag und bringt in der Tat keinen Sinn.
Es soll ja auch keine zweite x-Achse mit Bezug auf die 3. Werte-Reihe gezeigt werden, sondern die Skalierung der zweite Y-Achse soll einen Bezug auf die 3. Werte-Reihe bekommen.
Wenn ich also über den Makrorecorder das benutzerbedinierte Organigramm mit 2 Säulen und 1 Linie erzeuge und den Bezug der 2. Y-Achse der 3. Werte-Reihe zuordne, klappt dies ganz prima. Lasse ich daher auf die "Aufzeichnungt" nochmalss laufen, gibt´s die eingangs erwähnte Meckermeldung. Daher dieser Thread....
Vielleicht hast Du noch eine Idee?
Danke und viele Grüße
Matthias
Anzeige
AW: Sekundärachse Organigramm (noch offen)
30.08.2005 21:55:41
Herbert
hallo Matthias,
bei mir sieht es jetzt so aus...
Userbild


Public Sub Säulendiagramm()
Dim cht As ChartObject
Application.ScreenUpdating = False
ActiveWorkbook.Colors(49) = RGB(221, 221, 221)
Set cht = Worksheets("Tabelle1"). _
               ChartObjects.Add(200, 120, 500, 280)
    With cht.Chart
            .ApplyCustomType ChartType:=xlColumnClustered
            .SetSourceData Source:=Sheets("Tabelle1").Range("b3:s6"), PlotBy:=xlRows
            .Location Where:=xlLocationAsObject, Name:="Tabelle1"
            .HasTitle = True
            .ChartTitle.Characters.Text = "Mein Diagrammtitel"
            .ChartArea.Interior.ColorIndex = 49
            
            With .PlotArea
                   .Interior.ColorIndex = 2
                   .Height = 218
                   .Top = 31
            End With
            
            With .Axes(xlCategory, xlPrimary)
                   .TickLabels.Font.Size = 8
                   .HasTitle = True
                   .AxisTitle.Characters.Text = "testx"
            End With
            
            With .Axes(xlValue, xlPrimary)
                   .HasTitle = True
                   .AxisTitle.Characters.Text = "testy"
                   .HasMajorGridlines = False
            End With
        .Deselect
      End With
      
Application.ScreenUpdating = True
Set cht = Nothing
End Sub

     gruß Herbert
Anzeige
AW: Sekundärachse Organigramm (noch offen)
31.08.2005 09:26:46
Matthias_FFM
Hallo Herbert,
danke für Deinen Update, ich benötige aber ein benutzerdefiniertes Organigramm, wobei die rechte (2. Y-Achse) Bezug nehmen soll auf die dritte Werte-Reihe. Diese Werte sollen dann als Linie, nicht als Säulen gezeigt werden. Auch sollte die zweite (=rechte)Y-Achse eine zu den Werten der 3. Reihe passende Skalierung zeigen.
Wie gesagt, wenn ich den Makro-Recorder nutze und das Organigramm aufzeichnet funktioniert es prima, lasse jedoch das aufgezeichnete Makro dann laufen, gibt´s den Hänger bei der Skalierung der zweiten Y-Achse.
Viele Grüße
Matthias
AW: Sekundärachse Organigramm (noch offen)
31.08.2005 10:09:31
Herbert
Guten Morgen,
ich hab es deswegen so gemacht,
weil dein Diagramm in der Tabelle so ausgesehen hat...
probiers so:
Public

Sub Säulendiagramm()
Dim cht As ChartObject
Application.ScreenUpdating = False
ActiveWorkbook.Colors(49) = RGB(235, 235, 235)
Set cht = Worksheets("Tabelle1"). _
ChartObjects.Add(200, 120, 500, 280)
With cht.Chart
.ApplyCustomType ChartType:=xlColumnClustered
.SetSourceData Source:=Sheets("Tabelle1").Range("b3:s6"), PlotBy:=xlRows
.Location Where:=xlLocationAsObject, Name:="Tabelle1"
.HasTitle = True
.ChartTitle.Characters.Text = "Mein Diagrammtitel"
.ChartArea.Interior.ColorIndex = 49
With .SeriesCollection(3)
.AxisGroup = 2
.ChartType = xlLine
End With
With .PlotArea
.Interior.ColorIndex = 15
.Height = 218
.Top = 31
End With
With .Axes(xlCategory, xlPrimary)
.TickLabels.Font.Size = 8
.HasTitle = True
.AxisTitle.Characters.Text = "testx"
End With
With .Axes(xlValue, xlPrimary)
.HasTitle = True
.AxisTitle.Characters.Text = "testy"
.HasMajorGridlines = False
End With
.Legend.Interior.ColorIndex = 15
.Deselect
End With
Application.ScreenUpdating = True
Set cht = Nothing
End Sub

die Grösse und die Platzierung kannst du
in dieser Zeile
ChartObjects.Add(200, 120, 500, 280)
wie gewünscht einstellen...
gruß Herbert
Anzeige
AW: Sekundärachse Organigramm (noch offen)
31.08.2005 10:54:27
Matthias_FFM
Hallo Herbert,
herzlichen Dank für Deine Geduld und Deine Tipps, klappt jetzt prima.
Eine letzte Frage: Da bei Erstellung eines Diagramms der interne Name "hochzählt", würde ich dem Diagramm gerne einen festen Namen geben.
Danke nochmals.....
Matthias
AW: Sekundärachse Organigramm (noch offen)
31.08.2005 13:09:20
Herbert
dann vergibst halt einen...
Set cht = Worksheets("Tabelle1"). _
ChartObjects.Add(200, 120, 500, 280)
cht.Name = "Mein Diagramm1"
gruß Herbert
AW: Sekundärachse Organigramm (noch offen)
31.08.2005 13:09:25
Herbert
dann vergibst halt einen...
Set cht = Worksheets("Tabelle1"). _
ChartObjects.Add(200, 120, 500, 280)
cht.Name = "Mein Diagramm1"
gruß Herbert
Anzeige
Danke, aller klar (o.T.)
31.08.2005 13:40:39
Matthias_FFM

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige