Thema Datum  Von Nutzer Rating
Antwort
16.02.2014 22:36:03 TCE
NotSolved
Blau Kreissegment in Excel
17.02.2014 12:22:43 Gast56538
NotSolved

Ansicht des Beitrags:
Von:
Gast56538
Datum:
17.02.2014 12:22:43
Views:
1154
Rating: Antwort:
  Ja
Thema:
Kreissegment in Excel

Option Explicit
'**************************************************************
Rem die Kreisgrunddaten über alles
Dim kTop As Long    'Kreispositionen
Dim kLeft As Long
Dim kWidth As Long  'Kreisgröße
Dim kLine As Long   'Linienstärke
Dim klColor As Long 'linienfarbe
Dim kAngle As Long  'Winkel
Dim kfColor As Long 'Füllfarbe
'**************************************************************
Sub Kreissegmente()
Dim x 'Zähler
Dim Rng As Range

'**************************************************************
Rem dieser Teil dient nur zur Demo
'lösche Tabelle insgesamt
ActiveSheet.Cells.Clear
ActiveSheet.Cells.ClearContents
For x = ActiveSheet.Shapes.Count To 1 Step -1
  ActiveSheet.Shapes(x).Delete
Next x
'Testdaten in Spalte A
For x = 1 To 4
  With Cells(x, 1)
    .NumberFormat = "0"
    .Value = WorksheetFunction.RandBetween(10, 60)
  End With
  With Cells(x, 2)
    .NumberFormat = "0%"
    .Value = Round(Cells(x, 1).Value / 100, 2)
  End With
Next x
Set Rng = [A1].CurrentRegion
With ActiveSheet
  .Sort.SortFields.Clear
  .Sort.SortFields.Add Key:=Range([A1], [A1].End(xlDown)), _
      SortOn:=xlSortOnValues, _
      Order:=xlAscending, _
      DataOption:=xlSortNormal
End With
With ActiveSheet.Sort
  .SetRange Range(Rng.Address)
  .Header = xlGuess
  .MatchCase = False
  .Orientation = xlTopToBottom
  .SortMethod = xlPinYin
  .Apply
End With
'**************************************************************


'**************************************************************
Rem jetzt die Kreis - Zwiebeltechnik
'erster Kreis mit den Grundpositionen
kTop = 180
kLeft = 80
kWidth = 100
kLine = 10
klColor = 13
kfColor = 1
'Vollkreis 360 Grad = 100 % entspricht -90 oder 270
kAngle = -90
  KreisMit kAngle, kfColor, klColor 'erzeugen
 
'**************************************************************
Rem ein Demo  Algorithmus zur Segmenterzeugung
'die Kreise darüberlegen
For Each Rng In Range([B1], [B1].End(xlDown))
  kAngle = Round((-90 + 360) * Rng.Value, 0)
  kfColor = kfColor + 1
  KreisMit kAngle, kfColor, klColor 'erzeugen
Next Rng

'**************************************************************
[A1].End(xlDown).Select
End Sub

Private Sub KreisMit(ra, fc, lc)
    ActiveSheet.Shapes.AddShape(msoShapePie, kTop, kLeft, kWidth, kWidth).Select
    Selection.ShapeRange.ScaleHeight 1, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleWidth 1, msoFalse, msoScaleFromTopLeft
    
    Selection.ShapeRange.Fill.ForeColor.ObjectThemeColor = fc
    Selection.ShapeRange.Line.ForeColor.ObjectThemeColor = lc
    Selection.ShapeRange.Line.Weight = kLine
    Selection.Placement = xlFreeFloating
    
    Selection.ShapeRange.Adjustments.Item(1) = ra
'**************************************************************
Rem rumspielen kannste auch mit
'.ShapeRange.Fill.Transparency = 1
'.ShapeRange.Line.DashStyle = msoLineDash
'.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "MeinText"
'.ShapeRange(1).TextFrame2.TextRange.Characters.Font.Size = 8
'usw
End Sub


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
16.02.2014 22:36:03 TCE
NotSolved
Blau Kreissegment in Excel
17.02.2014 12:22:43 Gast56538
NotSolved