Skift diagramdata som pr. Markeret celle

Indholdsfortegnelse

Hvis du vil lave et dashboard med et diagram, der ændrer dets data i henhold til de valgte muligheder, kan du bruge begivenhederne i VBA. Ja, det kan lade sig gøre. Vi har ikke brug for nogen rullemenu, skiver eller kombinationsboks. Vi gør celler klikbare og ændrer data for at oprette et diagram fra den valgte celle.

Følg nedenstående trin for at lave dynamiske diagrammer i excel, der ændres i henhold til cellevalget.

Trin 1: Forbered dataene i et ark som en kilde til diagrammet.

Her har jeg nogle eksempeldata fra forskellige regioner i et ark. Jeg kaldte det kildedata.

Trin 2: Få en regions data ad gangen på et andet ark.

  • Indsæt nu et nyt ark. Navngiv det passende. Jeg kaldte det som "Dashboard".
  • Kopier alle måneder i en kolonne. Skriv en regions navn ved siden af ​​måneden.
  • Nu vil vi trække data fra regionen i celle D1. Vi vil have, at dataene ændres, efterhånden som regionen ændres i D1. Til det kan vi bruge tovejsopslag.

Da mine kildedata er i A2: D8 på kildedatablad. Jeg bruger nedenstående formel.

=VLOOKUP(C2, 'Kildedata'! $ A $ 2: $ D $ 8,MATCH($ D $ 1, 'Kildedata'! $ A $ 1: $ D $ 1,0))

Her bruger vi dynamisk kolonneindeksering til VLOOKUP. Du kan læse om det her.

  • Indsæt et diagram ved hjælp af disse data på instrumentbrættet. Jeg bruger et enkelt stregdiagram. Skjul kilden til diagrammet, hvis du ikke vil vise dem.

Når du nu ændrer regionsnavnet i D1, ændres diagrammet i overensstemmelse hermed. Det næste trin er at ændre regionsnavnet i D1, når du vælger en mulighed fra den angivne celle.

Trin 3: Skift regionen, når du vælger et regionnavn i det angivne område.

  • Skriv alle regionens navne i et område, jeg skriver dem i område A2: A4.

  • Højreklik på navnet på instrumentbrættet og klik på "Vis kode" for at komme direkte ind i regnearksmodulet i VBE, så vi kan bruge regnearkshændelsen.
  • Skriv nu nedenstående kode i VB Editor.
    Private Sub Worksheet_SelectionChange (ByVal Target As Range) If Not Intersect (Target, Range ("A2: A4")) Is Nothing Then Range ("A2: A4"). Interior.ColorIndex = xlColorIndexNone Dim region As Variant region = Target.value Ved fejl GoTo err: Vælg Case region Case Is = "Central" Range ("D1"). Value = region Case Is = "East" Range ("D1"). Value = region Case Case = "West" Range ("D1 ") .value = region Case Else MsgBox" Ugyldig mulighed "Afslut Vælg Target.Interior.ColorIndex = 8 Slut Hvis fejl: Afslut Sub 

Og det er gjort. Når du nu vælger en celle i område A2: A4, vil værdien blive tildelt D1, og diagrammets data ændres i overensstemmelse hermed.

Jeg har forklaret hvordan denne kode fungerer nedenfor. Du kan forstå det og foretage ændringer i henhold til dine krav. Jeg har givet links til hjælpeemner, som jeg har brugt her i dette eksempel. Så tjek dem ud.

Hvordan fungerer koden?

Her har jeg brugt Event of Excel. Jeg brugte en regnearkshændelse "SelectionChange" til at udløse begivenhederne.

Hvis ikke skæres (mål, rækkevidde ("A2: A4")) er der ikke noget

Denne linje sætter fokus på området A2: A4, så SelectionChange -hændelsen kun udløses, når markeringen er i område A2: A4. Koden mellem If og End kører kun, hvis valget er i område A2: A4. Du kan nu indstille det efter dine krav for at gøre dit diagram dynamisk.

Område ("A2: A4"). Interior.ColorIndex = xlColorIndexNone

Denne linje sætter farven i område A2: A4 til ingenting.

region = Target.value Ved fejl GoTo err: 

I de to ovenstående linjer får vi værdien af ​​de valgte celler i det variable område og ignorerer enhver fejl, der opstår. brug ikke linjen "On Error GoTo err:", før du er sikker på, at du vil ignorere enhver fejl, der opstår. Jeg brugte det til at undgå en fejl, når jeg markerede flere celler.

Vælg Case region Case Is = "Central" Range ("D1"). Value = region Case Is = "East" Range ("D1"). Value = region Case Is = "West" Range ("D1"). Value = region Case Else MsgBox "Ugyldig mulighed" Afslut Vælg 

I ovenstående linjer bruger vi excels Select Case Statement til at indstille værdien af ​​område D1.

Target.Interior.ColorIndex = 8 Slut Hvis fejl: Afslut Sub

Før sætningen If hvis vi ændrer farven på den valgte indstilling, så den bliver fremhævet. Så slutter sætningen og fejl: tag starter. On Error -sætningen springer til dette tag, hvis der opstår en fejl under select -sætningen.

Download arbejdsfilen herunder.

Indlejrede diagramhændelser ved hjælp af VBA i Microsoft Excel| De indlejrede diagrambegivenheder kan gøre dit diagram mere interaktivt, dynamisk og nyttigt end normale diagrammer. For at aktivere begivenhederne på diagrammer vi …

Begivenhederne i Excel VBA |Der er syv typer begivenheder i Excel. Hver begivenhed handler i forskellige omfang. Application Event omhandler på projektmappeniveau. Arbejdsbog på arkniveau. Arbejdsarkbegivenhed på rækkevidde.

Regnearket Begivenheder i Excel VBA| Regnearkshændelsen er virkelig nyttig, når du vil have dine makroer kørt, når en bestemt hændelse forekommer på arket.

Arbejdsbogshændelser ved hjælp af VBA i Microsoft Excel | Arbejdsbogshændelserne fungerer på hele projektmappen. Da alle arkene er en del af projektmappen, fungerer disse begivenheder også på dem.

Forhindre, at en automacro/eventmacro udføres ved hjælp af VBA i Microsoft Excel| For at forhindre kørsel af auto_open -makroen skal du bruge shift -tasten.

Kortobjekthændelser ved hjælp af VBA i Microsoft Excel| Diagrammerne er komplekse objekter, og der er flere komponenter, du har knyttet dem til. For at lave diagramhændelserne bruger vi klasse -modulet.

Populære artikler:

50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje gør dit arbejde endnu hurtigere i Excel.

VLOOKUP -funktionen i Excel | Dette er en af ​​de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.

COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke at filtrere dine data for at tælle specifik værdi. Countif -funktion er afgørende for at forberede dit dashboard.

Sådan bruges SUMIF -funktionen i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave