11. november 2007 - 10:37Der 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å.
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
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
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?
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)?
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.
Synes godt om
Ny brugerNybegynder
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.