Avatar billede hnto Nybegynder
25. maj 2011 - 12:36 Der er 7 kommentarer og
1 løsning

formatteret visning på graf

jeg har et søjlediagram i et excel hvor jeg gerne vil lave grafen rød hvis den er under en given værdi i celle d10 og lave den blå hvis den er større.

kan man det ?
Avatar billede duxz Nybegynder
25. maj 2011 - 12:41 #1
Avatar billede hnto Nybegynder
25. maj 2011 - 12:42 #2
her er nuværende kode til dashboarded.

=SERIES(Dashboard!$B$42;Dashboard!$C$41:$D$41;Dashboard!$C$42:$D$42;1)

det er således hvis c42 er mindre end d42 den skal blive rød og omvendt. kan man mon ikke lave det med noget "if c42 < d42 then c42 vbcolor = red"
Avatar billede supertekst Ekspert
25. maj 2011 - 17:35 #3
Forslag:

Sub sætSøjleFarve()
Dim værdi As Variant

    With ActiveWorkbook.ActiveSheet
        antalSerier = ChartObjects(1).Chart.SeriesCollection.Count
       
        For s = 1 To antalSerier
            værdi = .ChartObjects(1).Chart.SeriesCollection(s).Values
           
            For p = 1 To UBound(værdi)
                .ChartObjects(1).Chart.SeriesCollection(s).Points(p).Select
           
                If værdi(p) > Range("D10") Then
                    Selection.Interior.Color = rgbBlue
                Else
                    Selection.Interior.Color = rgbRed
                End If
            Next p
        Next s
    End With
End Sub
Avatar billede duxz Nybegynder
26. maj 2011 - 08:27 #4
Hvis det der virker er det super blæret :D
Avatar billede supertekst Ekspert
26. maj 2011 - 08:55 #5
- men det virker..
Avatar billede hnto Nybegynder
26. maj 2011 - 09:10 #6
jeg fik en kollega til at kigge på det også og nedenstående virker

Sub Worksheet_Calculate()
    If ActiveSheet.Range("C2").Value = True Then
        ActiveSheet.ChartObjects("Chart 2").Activate
        With ActiveChart
            .SeriesCollection(1).Interior.ColorIndex = 3
            .SeriesCollection(2).Interior.ColorIndex = 4
        End With
    Else
        ActiveSheet.ChartObjects("Chart 2").Activate
        With ActiveChart
            .SeriesCollection(1).Interior.ColorIndex = 4
            .SeriesCollection(2).Interior.ColorIndex = 3
        End With
    End If
    ActiveSheet.Range("A2").Select
End Sub
Avatar billede hnto Nybegynder
26. maj 2011 - 09:10 #7
jeg vil dog gerne give point for jeres ihærdighed på dem der er kommet med konkrete forslag
Avatar billede supertekst Ekspert
26. maj 2011 - 09:25 #8
Så får du et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester