Avatar billede sism Nybegynder
13. januar 2011 - 13:03 Der er 6 kommentarer og
1 løsning

Skifte en til en bestemt farve på 4 forskellige søjler i et diagram vha makro

Hej!
Er der nogen der kan hjælpe mig med at opstille en makro der sætter 4 forudbestemte og forskellige blå farver ind i et diagram?
Diagrammet viser 4 kvartaler, som jeg vha en makro skifter rundt på, og det fungerer, men farverne har jeg ikke styr på.
Avatar billede newbieatphp Nybegynder
13. januar 2011 - 13:39 #1
Du skriver, at du allerede har en makro til at oprette diagrammet...

Da du ikke lige har smidt det kode, så smider jeg blot lidt kode, som du muligvis kan smide ind i dit.

'jeg starter med at markere det diagram jeg vil arbejde med
ActiveSheet.ChartObjects("Diagram 1").Activate
ActiveChart.ChartArea.Select

ActiveChart.SeriesCollection(1).Select
    With Selection.Interior
        .ColorIndex = 5
    End With

Dette skulle ændre første søjle, stykke af kage etc. (og du ændre blot tallet i () for at vælge hvilken sølje der skal farves, og tallet efter .ColorIndex er hvilken farve det skal være

På denne side, kan du se de første 56 farver: http://www.automateexcel.com/2004/08/18/excel_color_reference_for_colorindex/
Avatar billede sism Nybegynder
13. januar 2011 - 15:12 #2
Det ser ud til at være på rette vej, er det muligt at finde ud af hvilke farvenummere jeg har i eksisterende grafer i XL 2007, og hvordan jeg kan lysne fx Colorindex=5 fx 80% ?
Avatar billede sism Nybegynder
13. januar 2011 - 16:13 #3
Hmm det virker sgutte helt.

Jeg har prøvet at rette søjle 2 i grafen, men det forstår den ikke.

Her er koden.


Range("G8:G18").Select
    Selection.Cut
    Range("K8:K18").Select
    ActiveSheet.Paste
    Range("B8:B18").Select
    Selection.Cut
    Range("G8:G18").Select
    ActiveSheet.Paste
    Range("C8:E18").Select
    Selection.Cut
    Range("B8").Select
    ActiveSheet.Paste
    Range("G8:G18").Select
    Selection.Cut
    Range("E8").Select
    ActiveSheet.Paste
    Range("H8:K18").Select
    Selection.Cut
    Range("G8").Select
    ActiveSheet.Paste
   
    ActiveSheet.ChartObjects("Diagram 4").Activate
    ActiveSheet.ChartObjects("Diagram 4").Activate
    ActiveChart.SetSourceData Source:=Range("A8:A18,G8:J18")
   
   
   
    ActiveSheet.ChartObjects("Diagram 4").Activate
    ActiveChart.SeriesCollection(1).Delete
    ActiveChart.SeriesCollection(2).Delete
    ActiveChart.SeriesCollection(2).Delete
    ActiveChart.SeriesCollection(2).Delete
    ActiveChart.SeriesCollection(2).Delete
    ActiveChart.SeriesCollection(2).Delete
    ActiveChart.SeriesCollection(2).Delete
    ActiveChart.SeriesCollection(2).Delete
    ActiveChart.SeriesCollection(2).Delete
   
   
   
   
    ActiveSheet.ChartObjects("Diagram 4").Activate
ActiveChart.ChartArea.Select

ActiveChart.SeriesCollection(1).Select
    With Selection.Interior
        .ColorIndex = 5
    End With
'(hertil virker det ok, bortset fra at alle 4 søjler får samme farve. så prøver jeg at rette søjle 2, men det forstår den ikke.)

    ActiveSheet.ChartObjects("Diagram 4").Activate
ActiveChart.ChartArea.Select

ActiveChart.SeriesCollection(2).Select
    With Selection.Interior
        .ColorIndex = 6
    End With
Avatar billede newbieatphp Nybegynder
13. januar 2011 - 16:38 #4
Ved ikke om du evt. har mulighed for at gemme det som en 2003 udgave og sende, så skal jeg prøve at kigge på det... (mail står i min profil)


Ellers omkring farverne, så har du også mulighed for at skrive det på andre måder:

istedet for .ColorIndex .. så kan du bruge .Color også bruge en af følgende talmåder

= RGB(0, 0, 255)
= &O77600000
= &HFF0000
= 16711680
Avatar billede newbieatphp Nybegynder
13. januar 2011 - 16:47 #5
Ellers prøve med følgende kode først:

    Range("G8:G18").Select
    Selection.Cut
    Range("K8:K18").Select
    ActiveSheet.Paste
    Range("B8:B18").Select
    Selection.Cut
    Range("G8:G18").Select
    ActiveSheet.Paste
    Range("C8:E18").Select
    Selection.Cut
    Range("B8").Select
    ActiveSheet.Paste
    Range("G8:G18").Select
    Selection.Cut
    Range("E8").Select
    ActiveSheet.Paste
    Range("H8:K18").Select
    Selection.Cut
    Range("G8").Select
    ActiveSheet.Paste
 
    ActiveSheet.ChartObjects("Diagram 4").Activate
    ActiveChart.SetSourceData Source:=Range("A8:A18,G8:J18") 
    ActiveSheet.ChartObjects("Diagram 4").Activate
    ActiveChart.ChartArea.Select

    ActiveChart.SeriesCollection(1).Select
    With Selection.Interior
        .ColorIndex = 5
    End With

    ActiveSheet.ChartObjects("Diagram 4").Activate
    ActiveChart.ChartArea.Select

    ActiveChart.SeriesCollection(2).Select
    With Selection.Interior
        .ColorIndex = 6
    End With
Avatar billede sism Nybegynder
13. januar 2011 - 20:57 #6
Jeg har løst det på følgende måde..

ActiveSheet.ChartObjects("Diagram 4").Activate
ActiveChart.ChartArea.Select

ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Points(1).Select
    With Selection.Interior
        .ColorIndex = 56
    End With
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Points(2).Select
    With Selection.Interior
        .ColorIndex = 6
    End With
    ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Points(3).Select
    With Selection.Interior
        .ColorIndex = 7
    End With
    ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Points(4).Select
    With Selection.Interior
        .ColorIndex = 8
    End With

Det lade til at du har foreslået nogenlunde det samme, så send et svar..
Avatar billede newbieatphp Nybegynder
13. januar 2011 - 21:08 #7
okay..
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