Surface-graafin värien muuttaminen

1+14

Haluaisin tehdä makron, jolla muutan surface-tyypin värejä. Manuaalisesti tämä onnistuu, mutta se on älyttömän hankalaa. Haluan, että värit kattavat tietyln skaalan, vaikka Labelien lukumäärä vaihtelee.. En ole keksinyt, miten tämä tehdään.

7

124

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Mr. VBA

      Moi, toimisiko alla oleva ? Moduulin alkuun (aivan moodulin alkuun) teksti

      Option Base 1

      ja sitten alemmas makro

      Sub GraafiVarit()
      ' makrolla voi muuttaa graafien sarjojen värejä
      ' toimii vain aktiiviseen kaavioon, legend tulee olla myös esillä kaaviossa
      ' HUOM! moduulin alkuun tulee lisätä lause "Option Base 1"

      Dim Varit() As Variant
      Dim Leg As Integer
      Dim i As Integer

      ' määrittele seuraavalla rivillä array-muuttujan arvoiksi haluamasi väriarvot
      ' esim joka toinen eri väri-> Varit = Array(5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4)
      ' oletuksena alla 12 eri väriä

      Varit = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

      On Error Resume Next
      Leg = ActiveChart.Legend.LegendEntries.Count

      For i = 1 To UBound(Varit)
      ActiveChart.Legend.LegendEntries(i).LegendKey.Interior.ColorIndex = Varit(i)
      Next i

      End Sub

    • "Haluan, että värit kattavat tietyln skaalan, vaikka Labelien lukumäärä vaihtelee.. .."
      ;-)

      Keep EXCELing
      @Kunde

      • 1+14

        Sorry, ei Label, vaan Band. En keksi, millä saan muutettua Bandin väriä, ts. tuota kommentiksi muutettua riviä olen yrttänyt tuloksetta kirjoittaa monella tavalla.

        Private Sub SpinButton2_Change()
        ActiveSheet.ChartObjects("Chart 1").Activate
        Application.ScreenUpdating = False
        With ActiveChart
        le = SpinButton2.Value
        Max = .Axes(xlValue).MaximumScale
        .Axes(xlValue).MinimumScale = Max - le
        n = 0
        For Each objLE In ActiveChart.Legend.LegendEntries
        ' objLE.LegendKey.MarkerForegroundColor = Väri(n / le)
        n = n 1
        Next
        End With
        End Sub


      • ...
        1+14 kirjoitti:

        Sorry, ei Label, vaan Band. En keksi, millä saan muutettua Bandin väriä, ts. tuota kommentiksi muutettua riviä olen yrttänyt tuloksetta kirjoittaa monella tavalla.

        Private Sub SpinButton2_Change()
        ActiveSheet.ChartObjects("Chart 1").Activate
        Application.ScreenUpdating = False
        With ActiveChart
        le = SpinButton2.Value
        Max = .Axes(xlValue).MaximumScale
        .Axes(xlValue).MinimumScale = Max - le
        n = 0
        For Each objLE In ActiveChart.Legend.LegendEntries
        ' objLE.LegendKey.MarkerForegroundColor = Väri(n / le)
        n = n 1
        Next
        End With
        End Sub

        MarkerForegroundColor = RGB(0,255,0)


      • 1+14
        ... kirjoitti:

        MarkerForegroundColor = RGB(0,255,0)

        Millaisen rimpsun perään tuo MarkerForegroundColor on laitettava, jotta sille voidaan antaa arvo?


      • 1+14
        1+14 kirjoitti:

        Millaisen rimpsun perään tuo MarkerForegroundColor on laitettava, jotta sille voidaan antaa arvo?

        No, jo keksin. Ei mikään MarkerForegroundColor olekaan. Yllä kommentoitu rivi pitää olla muodossa:

        objLE.LegendKey.Interior.Color = Väri(n / ny)


    • 1+14

      Ei Label, vaan Band.Sorry. En ole onnistunut muuttamaan Bandien värejä.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Jos venäjällä olisi kansan valitsema presidentti, olisiko Ukrainan sotaa?

      Ei varmasti olisi. Sehän on tiedossa, että raskaalla vaalivilpillä putin jatkaa pressana.
      Maailman menoa
      276
      3971
    2. Riikka jytkytti naftan hinnan jo yli 2,3 euroon

      Sannan aikaan esimerkiksi dieseliä selvästi kalliimpaa bensaakin sai 1,3 eurolla. https://www.is.fi/autot/art-200001188
      Maailman menoa
      105
      3645
    3. Vasemmiston feministinaiset puolustavat islamia

      mikä on täysin järjenvastaista, mutta eihän femakoilla paljon järkeä olekkaan, leijuvat siellä omassa kuplassaan. Myös
      Maailman menoa
      177
      2636
    4. Päivän Sanna: Suomi maailman onnellisin maa

      Sanna muutti Suomen maailman onnellisimmaksi maaksi. Hänen pyyteetön työnsä maailmalla tuottaa edelleen tulosta.
      Maailman menoa
      42
      2397
    5. Ei se halua mitään!!

      Arkailija koko tyyppi!
      Ikävä
      62
      2345
    6. Jätän tähän viesti kaivatullesi

      jos jotain jäänyt sanomatta. 👇
      Ikävä
      154
      1942
    7. Olet kyllä erittäin huono yhdistelemään pisteitä.

      Etkä vain sinä vaan kaikki teilläpäin.
      Ikävä
      34
      1737
    8. Etkö sitten itse

      ole koskaan ylittänyt rajaa?
      Ikävä
      41
      1353
    9. Onko jo liian "vanha" vai mitä mieltä olet? 57-v. saa raakaa tekstiä tv:ssä

      The Summit Suomi tv-ohjelmassa 57-vuotiaan Maritan jaksamista kyseenalaistettiin iän takia. Onko tässä iässä jo liian "v
      50 plus
      31
      1317
    10. Mitä järkeä iskeä

      Varattua ja yrittää saada sitä eroamaan
      Ikävä
      46
      1222
    Aihe