Avatar billede barin998dk Nybegynder
11. november 2007 - 10:37 Der er 5 kommentarer og
1 løsning

Farver i diagrammer - igen

Jeg oprettede et indlæg i går om det samme emne, og fik et godt svar.
Problemet er bare, at jeg ikke kan få det til at virke. Jeg har lidt forstand på VBA-kode, men ikke nok til at jeg kan gennemskue hvad der er galt.
Er der nogen, som kan give en alternativ løsning - eller hvis excelent ser dette redde mig igen.
For de nye læsere...
Jeg skal give karakterer i et projekt. Der er 11 evalueringspunkter, som skal vises i et almindeligt søjlediagram.
Hvis bedømmelsen er under 60, skal søjlen være rød - ellers blå.
Avatar billede alen32 Nybegynder
11. november 2007 - 11:29 #1
Du gører flg:
I ark1 og cellerne a1 til a4 du skriver navne i atk1 og cellerne b1 til b4 du skriver karakterer( ikke i procent bare tal). Du kopirer nedenstående kode og højreklikker du på fanen ark1 og vælger du vis programkode og derefter indsætter du koden. så hvergang du ændrer i tallene bliver garfen opdateret.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1:B4")) Is Nothing Then Exit Sub

ActiveSheet.ChartObjects("Diagram 1").Activate

For t = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(t).Select
If Sheets("Ark1").Cells(t, 2) < 30 Then Selection.Interior.ColorIndex = 3
If Sheets("Ark1").Cells(t, 2) >= 30 Then Selection.Interior.ColorIndex = 5

Next
ActiveSheet.Range("a5").Select
End Sub
Avatar billede alen32 Nybegynder
11. november 2007 - 11:33 #2
Foregående eksempel var baseret med skift på 30, her får du ved 60.
If Intersect(Target, Range("B1:B4")) Is Nothing Then Exit Sub

ActiveSheet.ChartObjects("Diagram 1").Activate

For t = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(t).Select
If Sheets("Ark1").Cells(t, 2) < 60 Then Selection.Interior.ColorIndex = 3
If Sheets("Ark1").Cells(t, 2) >= 60 Then Selection.Interior.ColorIndex = 5

Next
ActiveSheet.Range("a5").Select
End Sub
Avatar billede barin998dk Nybegynder
11. november 2007 - 12:01 #3
Ja, jo... Det var også meget lignende det eksempel jeg modtog i går.
Det virker også nogenlunde - indtil jeg finder ud af, at der er flere inddata end 4 samt at de skal stå et andet sted.
Derefter er alle søjler røde, uanset hvor meget jeg justerer i koden...
Hvordan kan det være?
Avatar billede barin998dk Nybegynder
11. november 2007 - 12:04 #4
Man skal da udelukkende ændre range-området i "If Intersect(Target, Range("B1:B4")) Is Nothing Then Exit Sub" til de rigtige celler - ikke?
Og så naturligvis ændre diagramnavnet til det nummer man nu har...
Og så bare lidt luksus... Kan man gøre sådan, at den ikke vender tilbage til den samme celle hele tiden, men i stedet går til næste celle (Den nedenunder)?
Avatar billede alen32 Nybegynder
11. november 2007 - 13:54 #5
Virker det nu?
Beskriv lidt hvor mange kolonner du har og hvor dine data står?
Hvor mange grafer har du?
Avatar billede barin998dk Nybegynder
11. november 2007 - 15:35 #6
Vi har klaret den! excelent, som hjalp mig i går kørte den helt i mål...
Jeg kiggede i lang tid på din løsning også, men kunne ikke finde ud af at omdanne den til mit konkrete projekt.
Jeg er ikke i tvivl om, at det er min egen utilstrækkelighed, som er problemet. Din løsning mindede utrolig meget om excelents, så den har med garanti været udmærket.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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