Ändra diagramdata per markerad cell

Innehållsförteckning

Om du vill skapa en instrumentpanel med ett diagram som ändrar dess data enligt de valda alternativen kan du använda händelserna i VBA. Ja, det går att göra. Vi behöver ingen rullgardinsmeny, skivare eller kombinationsbox. Vi kommer att göra celler klickbara och ändra data för att skapa ett diagram från den valda cellen.

Följ stegen nedan för att göra dynamiska diagram i excel som ändras enligt cellvalet.

Steg 1: Förbered data i ett blad som en källa för diagrammet.

Här har jag några provdata från olika regioner i ett blad. Jag kallade det källdata.

Steg 2: Få en regions data samtidigt på ett annat blad.

  • Lägg nu in ett nytt ark. Namnge det på lämpligt sätt. Jag döpte det till "Dashboard".
  • Kopiera alla månader i en kolumn. Skriv ett regionnamn intill månaden.
  • Nu vill vi hämta data från regionen i Cell D1. Vi vill att data ska ändras när regionen ändras i D1. För det kan vi använda tvåvägsuppslagningen.

Eftersom mina källdata finns i A2: D8 på källdatabladet. Jag använder nedanstående formel.

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

Här använder vi dynamisk kolumnindexering för VLOOKUP. Du kan läsa om det här.

  • Infoga ett diagram med hjälp av dessa data på instrumentpanelen. Jag använder ett enkelt linjediagram. Dölj källan till diagrammet om du inte vill visa dem.

När du nu ändrar regionnamnet i D1 kommer diagrammet att ändras i enlighet därmed. Nästa steg är att ändra regionnamnet i D1 när du väljer ett alternativ från den angivna cellen.

Steg 3: Ändra regionen när du väljer ett regionnamn i det angivna intervallet.

  • Skriv alla regionens namn i ett område, jag skriver dem i intervall A2: A4.

  • Högerklicka på namnet på instrumentpanelen och klicka på alternativet "Visa kod" för att gå direkt till kalkylbladsmodulen i VBE så att vi kan använda kalkylbladshändelsen.
  • Skriv nu nedan kod 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 Som Variant region = Target.value Vid fel GoTo err: Välj fallområde Fall är = "centralt" område ("D1"). Värde = region Fall är = "öst" intervall ("D1"). Värde = region Fall är = "väst" område ("D1 ") .value = region Fall Else MsgBox" Ogiltigt alternativ "Slut Välj Target.Interior.ColorIndex = 8 Slut Om err: End Sub 

Och det är gjort. När du nu väljer en cell i intervall A2: A4 kommer värdet att tilldelas D1 och diagrammets data ändras i enlighet därmed.

Jag har förklarat hur den här koden fungerar nedan. Du kan förstå det och göra ändringar enligt dina krav. Jag har tillhandahållit länkar till hjälpämnen som jag har använt här i det här exemplet. Så kolla in dem.

Hur fungerar koden?

Här har jag använt Event of Excel. Jag använde en kalkylhändelse "SelectionChange" för att utlösa händelserna.

If Not Intersect (Target, Range ("A2: A4")) är ingenting då

Den här raden ställer in fokus på intervallet A2: A4 så att SelectionChange -händelsen endast aktiveras när markeringen ligger i intervallet A2: A4. Koden mellan If och End körs bara om valet ligger inom intervall A2: A4. Du kan nu ställa in det enligt dina krav för att göra ditt diagram dynamiskt.

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

Denna rad anger färgen i intervallet A2: A4 till ingenting.

region = Target.value Vid fel GoTo err: 

I de två ovanstående raderna får vi värdet på de markerade cellerna i variabelområdet och ignorerar eventuella fel som uppstår. använd inte raden "On Error GoTo err:" förrän du är säker på att du vill ignorera alla fel som uppstår. Jag använde den för att undvika ett fel när jag markerade flera celler.

Välj fallområde Fall är = "centralt" intervall ("D1"). Värde = region Fall är = "öst" intervall ("D1"). Värde = region Fall är = "väst" intervall ("D1"). Värde = region Fall Else MsgBox "Ogiltigt alternativ" Slutval 

I ovanstående rader använder vi excels Select Case Statement för att ställa in värdet för intervall D1.

Target.Interior.ColorIndex = 8 Slut Om fel: Slut Sub

Före End If -satsen ändrar vi färgen på det valda alternativet så att det blir markerat. Sedan slutar If -satsen och fel: taggen startar. On Error -satsen hoppar till denna tagg om något fel uppstår under select -satsen.

Ladda ner arbetsfilen nedan.

Inbäddade diagramhändelser med VBA i Microsoft Excel| De inbäddade diagramhändelserna kan göra ditt diagram mer interaktivt, dynamiskt och användbart än vanliga diagram. För att aktivera händelserna på sjökort …

Händelserna i Excel VBA |Det finns sju typer av händelser i Excel. Varje evenemang handlar i olika omfattning. Application Event behandlar på arbetsboknivå. Arbetsbok på arknivå. Arbetsbladshändelse på intervallnivå.

Arbetsbladshändelser i Excel VBA| Arbetsbladshändelsen är verkligen användbar när du vill att dina makron ska köras när en viss händelse inträffar på arket.

Arbetsbokshändelser med VBA i Microsoft Excel | Arbetsbokhändelserna fungerar på hela arbetsboken. Eftersom alla blad är en del av arbetsboken fungerar dessa händelser också på dem.

Förhindra att en automacro/eventmacro körs med VBA i Microsoft Excel| För att förhindra körning av auto_open -makro, använd shift -tangenten.

Kartlägg objekthändelser med VBA i Microsoft Excel| Diagrammen är komplexa objekt och det finns flera komponenter som du bifogade dem. För att göra diagramhändelserna använder vi klassmodulen.

Populära artiklar:

50 Excel -genvägar för att öka din produktivitet | Bli snabbare på din uppgift. Dessa 50 genvägar gör ditt arbete ännu snabbare i Excel.

VLOOKUP -funktionen i Excel | Detta är en av de mest använda och populära Excel -funktionerna som används för att leta upp värde från olika intervall och ark.

COUNTIF i Excel 2016 | Räkna värden med förhållanden med denna fantastiska funktion. Du behöver inte filtrera dina data för att räkna specifikt värde. Countif -funktionen är avgörande för att förbereda din instrumentpanel.

Hur man använder SUMIF -funktionen i Excel | Detta är en annan viktig instrumentpanel. Detta hjälper dig att summera värden på specifika förhållanden.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave