Ga naar inhoud

Automatisch sorteren van een grafiek


hanslange
 Delen

Aanbevolen berichten

Ik heb een grafiek gemaakt gekoppeld aan een tabel in excel. In een aparte cel voer ik een waarde in die gevolgen heeft voor de waardes in de tabel. Deze noem ik even de 'waarde cel'. De bedoeling is dat men elke waarde die ze maar willen kunnen invoeren in deze waarde cel en dat de waardes in de tabel dan veranderen. Dat gebeurt ook. So far so good. 

 

Nu wil ik de uitkomsten van elke invoer visualiseren in een grafiek. Ook dat lukt prima. Nu wil ik dat waardes in de grafiek (en de bijbehorende legenda) gesorteerd kunnen worden van hoog naar laag. Ook dat lukt prima met de knop sorteren. De grafiek past zich aan. 

 

Maar nu wil ik dat dit proces automatisch gebeurt. Dus zodra ik een nieuwe waarde invoer in de waarde cel de grafiek zich automatisch sorteert zodat de staafjes netjes van hoog naar laag staan met de daarbij behorende legenda (deze wijzigen dus ook van positie al naar gelang de uitkomst). Hoe moet je dit doen?

 

Zie hieronder: tabel en grafiek(-en)

 

Situatie A: waarde invoer 10. 

 

 587460574_Grafiekmetwaarde10.thumb.png.4fe96ed7b1c2b03770ebf9844d398ed6.png

Situatie B: waarde invoer 1000: waardes in de tabel veranderen dusdanig dat niet meer E maar D de duurste is. Maar de volgorde van de grafiek presentatie is nog steeds A-B-C-D-E ...ik moet handmatig de tabel sorteren (met de knop sorteren) om de gewenste situatie C (zie hieronder) te krijgen. Ik wil graag dat dit automatisch gebeurt. Gewoon de waarde in de waarde cel veranderen en dat de grafiek zich automatisch aanpast naar de juiste volgorde (van hoog naar laag of omgekeerd). 

 

1449487023_Grafiekmetwaarde1000-volgordeveranderdniet.thumb.png.029c2beb89854f0c32dba9c1d6e3b225.png

 

Situatie 😄 de gewenste situatie ... waardes en legenda staan op opvolgende waardes gesorteerd in de grafiek ....echter deze is verkregen door handmatig te sorteren. Ik wil dat dit automatisch gebeurt bij het ingeven van een nieuwe waarde in de waarde cel (de enige variabele in het geheel).

 

901235586_Grafiekmetwaarde1000-nahandmatigsorteren-letoppositieDenE.thumb.png.b49a541c76b8d02893c9790b4eeba3ab.png

 

 

Met vriendelijke groet,

 

 

Hans Lange

 

Persoonlijke gegevens verwijderd door moderator

 

 

 

Grafiek met waarde 1000 - volgorde veranderd niet.png

Grafiek met waarde 1000 - na handmatig sorteren - let op positie D en E.png

aangepast door kweezie wabbit
Link naar reactie
Delen op andere sites


Hallo Hans.

Welkom op pc-helpforum.

 

Het is geen goed idee om je persoonlijke gegevens in open forum te zetten. (zie ook de forumregels.)

Daarom heb ik ze verwijderd.

 

Wat betreft je probleem is het beter een voorbeeldbestandje te plaatsen dan afbeeldingen.

De helpers kunnen dan sneller tot een oplossing komen.

Als er "gevoelige" informatie in het bestandje staat, mag je die anonimiseren.

Link naar reactie
Delen op andere sites

Ok. bedankt. Zal ik rekening mee houden voor toekosmtige vragen. 

 

Zojuist het antwoord op mijn vraag via Microsoft Community ontvangen:

 

Hans,

Een mogelijkheid waarbij gebruik wordt gemaakt van VBA.

Open de VBA-omgeving: Alt+F11

Selecteer in de projectverkenner (Ctrl+R) de module van het werkblad waarin je gegevens staan.

Plaats daarin onderstaande code:

Sub Sorteren()

    With Me.Sort

        .SortFields.Clear

        .SortFields.Add2 Key:=Range("G9:G13") _

        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

        .SetRange Range("A8:H13")

        .Header = xlYes

        .MatchCase = False

        .Orientation = xlTopToBottom

        .Apply

    End With

End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$15" Then
        Sorteren
    End If
End Sub

 

Als je nu B15 wijzigt worden, na berekening, de gegevens in A8:H13 gesorteerd op kolom G.

Jan

Link naar reactie
Delen op andere sites


met een voorbeeldbestandje wordt een excel bestandje bedoeld, of dacht je dat wij  zelf een volledig voorbeeldje gingen maken om het te testen?

 

ps. plaats uw code tussen code tags

Sub Sorteren()

    With Me.Sort

        .SortFields.Clear

        .SortFields.Add2 Key:=Range("G9:G13") _

        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

        .SetRange Range("A8:H13")

        .Header = xlYes

        .MatchCase = False

        .Orientation = xlTopToBottom

        .Apply

    End With

End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$15" Then
        Sorteren
    End If
End Sub

 

Link naar reactie
Delen op andere sites


Gast
Dit topic is nu gesloten voor nieuwe reacties.
 Delen

×
×
  • Nieuwe aanmaken...