Post by andreas schneiderJa danke. Super. Ich wollte niemanden drängen:)
Danke
andreas
Hallo Andreas,
Post by andreas schneiderIch wollte niemanden drängen
So ist das auch nicht angekommen...
Im Folgenden, also eine andere Version, wo auch die Legende zu
gebrauchen ist.
Die Datenbeschriftung läßt sich ganz gut anbringen (XP) mit
Diagramm-Optionen / Datenbeschriftung / DatenreihenName
Das Diagramm wird auf einem neuen Blatt angefertigt, das man umbenennen
sollte, sonst kann man keine zweite Version herbeiführen.
Die endgültige Gestaltung liegt aber ganz bei Dir....
Ich habe auch eine kürzere Version erprobt, wo die original Excel
Reihenfolge und Farben beibehalten werden. (Nur die Größe wird dann
verändert). Sieht aber nicht besonders aus und ich denke diese längere
Version ist Dir von größerem Nutzen.
Probier sie mal aus...
mit freundlichem Gruß
Jean
Sub Diagramm_Punkte_selbst_bestimmen()
'Ausgehend von der Datei "Punktdiagramm", die im Fenster steht
'z.B. indem dieser Code in die Tabelle eingefügt wird nach
'Rechtsklick auf Tabellenreiter/Code anzeigen/dann diesen Code
einfügen
'Zum Abspielen: Cursor irgendwo in den Text stellen und F5 drücken
Sheets.Add
ActiveSheet.Name = "Benenne_mich"
Sheets("Image und Marke 1").Range("M6:N24").Copy _
Sheets("Benenne_mich").Range("B3").Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("Benenne_mich").Select
With ActiveSheet
.Range("A3").Value = 1
.Range("A4").Value = 2
End With
ActiveSheet.Range("A3:A4").Select
Selection.AutoFill Destination:=ActiveSheet.Range("A3:A21")
With Sheets("Benenne_mich")
.Range("B20").Value = 0
.Range("C20").Value = 0
.Range("T20").Value = 0
.Range("C3").Select
End With
n = 1
Do While Not IsEmpty(ActiveCell.Offset(1, 0))
ActiveCell.Offset(1, 0).Select
ActiveCell.Copy
Selection.Offset(0, n).Value = ActiveCell.Value
n = n + 1
Loop
With Sheets("Benenne_mich")
.Range("C4:C21").ClearContents
End With
Sheets("Image und Marke 1").Range("P6:P24").Copy
Sheets("Benenne_mich").Range("V3").Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Zur Größenbestimmung der Symbole
'hier: 12 / 24 / 36 Excel-Punkte
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Kriterium für die Größe der Symbolen:
ActiveSheet.Range("W3:W21").FormulaLocal = _
"=WENN(V3<0,25;12;WENN(V3<0,50;24;36))"
'Für den Durchnittswert wird Größe auf 20 gesetzt durch
ActiveSheet.Range("W21").Value = 20
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
With ActiveSheet
.Range("C2").Formula = "a"
.Range("D2").Formula = "b"
.Range("U2").Formula = "Durchschnitt"
End With
ActiveSheet.Range("C2:D2").Select
Selection.AutoFill Destination:=ActiveSheet. _
Range("C2:T2"), Type:=xlFillDefault
Charts.Add
ActiveChart.SetSourceData _
Source:=Sheets("Benenne_mich").Range("B2:U21")
ActiveChart.Location _
Where:=xlLocationAsObject, Name:="Benenne_mich"
ActiveChart.PlotBy = xlColumns
With ActiveChart.Axes(xlCategory)
.MinimumScale = -1.5
.MaximumScale = 1.5
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.CrossesAt = 1
End With
With ActiveChart.Axes(xlValue)
.MinimumScale = 0
.MaximumScale = 3.5
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.CrossesAt = 1
End With
ActiveSheet.ChartObjects("Diagramm 1").Activate
k = ActiveChart.SeriesCollection.Count
n = 1
'Punkt a
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 11
.MarkerForegroundColorIndex = 11
.MarkerStyle = xlDiamond
.MarkerSize = Größe
End With
n = n + 1
'Punkt b
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 7
.MarkerForegroundColorIndex = 7
.MarkerStyle = xlSquare
.MarkerSize = Größe
End With
n = n + 1
'Punkt c
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 6
.MarkerForegroundColorIndex = 6
.MarkerStyle = xlTriangle
.MarkerSize = Größe
End With
n = n + 1
'Punkt d
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 33
.MarkerForegroundColorIndex = 33
.MarkerStyle = xlSquare
.MarkerSize = Größe
End With
n = n + 1
'Punkt e
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = 30
.MarkerStyle = xlStar
.MarkerSize = Größe
End With
n = n + 1
'Punkt f
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 9
.MarkerForegroundColorIndex = 9
.MarkerStyle = xlCircle
.MarkerSize = Größe
End With
n = n + 1
'Punkt g
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = 23
.MarkerStyle = xlPlus
.MarkerSize = Größe
End With
n = n + 1
'Punkt h
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 1
.MarkerForegroundColorIndex = 1
.MarkerStyle = xlCircle
.MarkerSize = Größe
End With
n = n + 1
'Punkt i
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 42
.MarkerForegroundColorIndex = 42
.MarkerStyle = xlDiamond
.MarkerSize = Größe
End With
n = n + 1
'Punkt j
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 46
.MarkerForegroundColorIndex = 46
.MarkerStyle = xlDiamond
.MarkerSize = Größe
End With
n = n + 1
'Punkt k
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 35
.MarkerForegroundColorIndex = 35
.MarkerStyle = xlSquare
.MarkerSize = Größe
End With
n = n + 1
'Punkt l
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 44
.MarkerForegroundColorIndex = 44
.MarkerStyle = xlTriangle
.MarkerSize = Größe
End With
n = n + 1
'Punkt m
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 41
.MarkerForegroundColorIndex = 41
.MarkerStyle = xlCircle
.MarkerSize = Größe
End With
n = n + 1
'Punkt n
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 53
.MarkerForegroundColorIndex = 53
.MarkerStyle = xlCircle
.MarkerSize = Größe
End With
n = n + 1
'Punkt o
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 39
.MarkerForegroundColorIndex = 39
.MarkerStyle = xlCircle
.MarkerSize = Größe
End With
n = n + 1
'Punkt p
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 40
.MarkerForegroundColorIndex = 40
.MarkerStyle = xlSquare
.MarkerSize = Größe
End With
n = n + 1
'Punkt q
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 51
.MarkerForegroundColorIndex = 51
.MarkerStyle = xlSquare
.MarkerSize = Größe
End With
n = n + 2
'Punkt Durchschnitt
Größe = Application.WorksheetFunction. _
VLookup(n, Sheets("Benenne_mich").Range("A3:W21"), 23)
ActiveChart.SeriesCollection(n).Select
With Selection
.MarkerBackgroundColorIndex = 3
.MarkerForegroundColorIndex = 3
.MarkerStyle = xlCircle
.MarkerSize = Größe
End With
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.ChartType = xlXYScatter
ActiveChart.ChartTitle.Delete
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Diagramm 1").IncrementLeft -231.75
ActiveSheet.Shapes("Diagramm 1").IncrementTop -143.25
ActiveSheet.Shapes("Diagramm 1").ScaleWidth 1.94, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Diagramm 1").ScaleHeight 1.96, msoFalse, _
msoScaleFromTopLeft
'dies zu Verlangsamung; sonst rafft der Rechner
'das nur im Einzelschritt :-)) ??
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Select
With Selection.Font
.Name = "Arial"
.Size = 12
End With
End Sub