Endre diagramdata som per valgt celle

Anonim

Hvis du vil lage et dashbord med et diagram som endrer dataene i henhold til de valgte alternativene, kan du bruke hendelsene i VBA. Ja, det kan gjøres. Vi trenger ikke noen rullegardin-, skive- eller kombinasjonsboks. Vi vil gjøre cellene klikkbare og endre data for å lage et diagram fra den valgte cellen.

Følg trinnene nedenfor for å lage dynamiske diagrammer i excel som endres i henhold til cellevalget.

Trinn 1: Forbered dataene i et ark som en kilde for diagrammet.

Her har jeg noen eksempeldata fra forskjellige regioner i et ark. Jeg kalte det kildedata.

Trinn 2: Få en regions data om gangen på et annet ark.

  • Sett nå inn et nytt ark. Gi det et passende navn. Jeg kalte det "Dashboard".
  • Kopier alle månedene i en kolonne. Skriv navnet på en region ved siden av måneden.
  • Nå ønsker vi å hente data fra regionen i celle D1. Vi vil at dataene skal endres etter hvert som regionen endres i D1. For det kan vi bruke toveisoppslag.

Siden kildedataene mine er i A2: D8 på kildedatabladet. Jeg bruker formelen nedenfor.

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

Her bruker vi dynamisk kolonneindeksering for VLOOKUP. Du kan lese om det her.

  • Sett inn et diagram ved hjelp av disse dataene på oversikten. Jeg bruker et enkelt linjediagram. Skjul kilden til diagrammet hvis du ikke vil vise dem.

Når du endrer regionnavnet i D1, vil diagrammet endres tilsvarende. Det neste trinnet er å endre regionnavnet i D1 når du velger et alternativ fra den angitte cellen.

Trinn 3: Endre regionen mens du velger et regionnavn i det angitte området.

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

  • Høyreklikk på navnet på dashbordarket og klikk på "Vis kode" -alternativet for å gå direkte inn i regnearkmodulen i VBE, slik at vi kan bruke regnearkhendelsen.
  • Skriv nå koden nedenfor 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 feil GoTo err: Velg 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 alternativ "End Velg Target.Interior.ColorIndex = 8 End Hvis err: End Sub 

Og det er gjort. Når du nå velger en celle i område A2: A4, blir verdien tilordnet D1 og dataene i diagrammet vil endres tilsvarende.

Jeg har forklart hvordan denne koden fungerer nedenfor. Du kan forstå det og gjøre endringer i henhold til dine krav. Jeg har gitt lenker til hjelpeemner som jeg har brukt her i dette eksemplet. Så sjekk dem ut.

Hvordan fungerer koden?

Her har jeg brukt Event of Excel. Jeg brukte en regnearkhendelse "SelectionChange" for å utløse hendelsene.

Hvis ikke krysser (mål, rekkevidde ("A2: A4")) er ingenting da

Denne linjen setter fokus til området A2: A4 slik at SelectionChange -hendelsen bare utløses når valget er i område A2: A4. Koden mellom If og End vil bare kjøre hvis valget er i område A2: A4. Du kan nå angi det i henhold til kravet ditt for å gjøre diagrammet ditt dynamisk.

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

Denne linjen setter fargen i område A2: A4 til ingenting.

region = Target.value Ved feil GoTo err: 

I de to linjene ovenfor får vi verdien av de valgte cellene i det variable området og ignorerer eventuelle feil som oppstår. ikke bruk linjen "On Error GoTo err:" før du er sikker på at du vil ignorere eventuelle feil som oppstår. Jeg brukte den for å unngå en feil når jeg valgte flere celler.

Velg 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 alternativ" Slutt Velg 

I linjene ovenfor bruker vi excels Select Case Statement for å angi verdien av område D1.

Target.Interior.ColorIndex = 8 Slutt Hvis feil: Slutt Sub

Før End If -setningen endrer vi fargen på det valgte alternativet slik at det blir uthevet. Deretter slutter If -setningen og err: tag starter. On Error -setningen hopper til denne taggen hvis det oppstår en feil under select -setningen.

Last ned arbeidsfilen nedenfor.

Innebygde diagramhendelser ved hjelp av VBA i Microsoft Excel| De innebygde diagramhendelsene kan gjøre diagrammet ditt mer interaktivt, dynamisk og nyttig enn vanlige diagrammer. For å aktivere hendelsene på diagrammer …

Hendelsene i Excel VBA |Det er syv typer hendelser i Excel. Hver hendelse avhenger i forskjellige omfang. Application Event omhandler på arbeidsboknivå. Arbeidsbok på arknivå. Arbeidsarkhendelse på områdenivå.

Regnearket Hendelser i Excel VBA| Regnearkhendelsen er veldig nyttig når du vil at makroene skal kjøres når en spesifisert hendelse oppstår på arket.

Arbeidsbokhendelser ved bruk av VBA i Microsoft Excel | Arbeidsbokhendelsene fungerer på hele arbeidsboken. Siden alle arkene er en del av arbeidsboken, fungerer disse hendelsene også på dem.

Forhindre at en automacro/eventmacro kjøres ved hjelp av VBA i Microsoft Excel| For å forhindre kjøring av auto_open -makroen, bruk skift -tasten.

Kartlegg objekthendelser ved hjelp av VBA i Microsoft Excel| Diagrammene er komplekse objekter, og det er flere komponenter du har festet dem til. For å lage diagramhendelsene bruker vi klassemodulen.

Populære artikler:

50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene vil gjøre arbeidet ditt enda raskere i Excel.

VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.

COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke å filtrere dataene dine for å telle spesifikk verdi. Countif -funksjonen er avgjørende for å forberede dashbordet.

Slik bruker du SUMIF -funksjonen i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold.