Just nu i M3-nätverket
Gå till innehåll

Linjediagram - framhäva en serie åt gången?


egh01

Rekommendera Poster

Jag har ett linjediagram med 20 serier (alltså en linje för varje serie). Antalet gör att det börjar bli svårt att urskilja hur varje linje förlöper. Att lägga på effekten "glow" på en serie åt gången för att framhäva den blir mycket snyggt tycker jag men det bli alldeles för bökigt att gå in och slå av/på effekten för varje serie hela tiden. Jag skulle vilja kunna trycka på en serie i "legenden" för att framhäva just den serien. Går detta att åstadkomma på något sätt? Eller att t.ex. lägga in en funktion så att jag kan stega mig igenom linjerna med piltangenterna och lysa upp en i taget? Eller kanske en möjlighet att skriva in namnet på en serie i en cell (serierna har mycket enkla namn) och då lyses denna upp?

 

Jag har ganska klart för mig hur jag vill att slutresultatet ska bli men vet inte hur jag ska åstadkomma det. Det kanske är svårt/omöjligt?

Länk till kommentar
Dela på andra webbplatser

Enda sättet är via VBA, via en kontroll som formaterar om grafen.

 

Bifogat en fil där jag implementerat det på en graf. Torde vara ganska enkelt för dig att flytta det till din bok.

Koden som finns är dels

Sub GraphColorInit()
Dim dSerie As Series
Dim rwIndex As Integer
rwIndex = 2
With Blad1
   	For Each dSerie In Blad1.Shapes("Diagram 2").Chart.SeriesCollection
       	.Cells(rwIndex, 24) = dSerie.Name
       	rwIndex = rwIndex + 1
   	Next dSerie
   	.Shapes("Listruta 1").OLEFormat.Object.ListFillRange = .Range(Me.Cells(2, 24), .Cells(rwIndex - 1, 24)).Address
End With

End Sub

som läser av och skriver ned serienamnen i en graf till en tabell på bladet. Fyller sedan en listruta med dessa värden, detta område.

Kör med en knapp exempelvis.

Sub ListRuta1_Klicka()
Dim dSerie As Series
With Blad1
   	For Each dSerie In .Shapes("Diagram 2").Chart.SeriesCollection
       	dSerie.Format.Glow.Radius = 0
   	Next dSerie
   	Set dSerie = .Shapes("Diagram 2").Chart.SeriesCollection(.Shapes("ListRuta 1").OLEFormat.Object.Value)
   	With dSerie.Format.Glow
       	.Color.ObjectThemeColor = msoThemeColorAccent1
       	.Color.TintAndShade = 0
       	.Color.Brightness = 0
       	.Transparency = 0.599999994
       	.Radius = 10
   	End With
End With
End Sub

som rensar glow-format på alla serier i en graf och sätter glow på en av dem.

 

Hela boken i zippat-format eftersom Eforum inte godtar makroaktiverade böcker.

DiagramGlow.zip

Länk till kommentar
Dela på andra webbplatser

Vad säger man, tack ska ni ha! Två snygga lösningar. Tur att det finns forum, sånt här kommer man (läs jag) inte på själv :blink: Eftersom jag inte är fena på VBA så får det bli MH:s lösning. Blir dessutom lättare att dela med sig av till andra.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...