Schimbați datele graficului în funcție de celula selectată

Anonim

Dacă doriți să creați un tablou de bord cu o diagramă care îi modifică datele conform opțiunilor selectate, puteți utiliza evenimentele din VBA. Da, se poate face. Nu vom avea nevoie de nicio casetă derulantă, feliată sau combinată. Vom face clic pe celule și vom schimba datele pentru a crea o diagramă din celula selectată.

Urmați pașii de mai jos pentru a crea diagrame dinamice în Excel care se schimbă conform selecției de celule.

Pasul 1: Pregătiți datele într-o foaie ca sursă pentru grafic.

Aici am câteva exemple de date din diferite regiuni într-o foaie. I-am numit date sursă.

Pasul 2: obțineți datele unei regiuni simultan pe o foaie diferită.

  • Acum introduceți o foaie nouă. Denumiți-l în mod corespunzător. L-am numit „Tablou de bord”.
  • Copiați toate lunile într-o singură coloană. Scrieți numele unei regiuni adiacente lunii.
  • Acum vrem să extragem date despre regiune în celula D1. Vrem ca datele să se schimbe pe măsură ce regiunea se schimbă în D1. Pentru aceasta, putem folosi Căutarea bidirecțională.

Deoarece datele mele sursă sunt în A2: D8 în Foaia de date sursă. Folosesc formula de mai jos.

=CĂUTARE(C2, „Date sursă”! $ A $ 2: $ D $ 8,MECI($ D $ 1, „Date sursă”! $ A $ 1: $ D $ 1,0))

Aici folosim indexarea dinamică a coloanelor pentru VLOOKUP. Puteți citi despre asta aici.

  • Inserați o diagramă folosind aceste date pe foaia de bord. Folosesc o diagramă liniară simplă. Ascundeți sursa graficului dacă nu doriți să le afișați.

Acum, pe măsură ce schimbați numele regiunii în D1, graficul se va schimba în consecință. Următorul pas este să schimbați numele regiunii în D1 pe măsură ce selectați o opțiune din celula specificată.

Pasul 3: Schimbați regiunea pe măsură ce selectați un nume de regiune în intervalul specificat.

  • Scrieți toate regiunile într-un interval, eu le scriu în intervalul A2: A4.

  • Faceți clic dreapta pe numele foii tabloului de bord și faceți clic pe opțiunea „Vizualizați codul” pentru a intra direct în modulul Foaie de lucru în VBE, astfel încât să putem utiliza evenimentul foii de lucru.
  • Acum scrieți codul de mai jos în Editorul VB.
    Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dacă nu se intersectează (Target, Range ("A2: A4")) Nu este nimic atunci Range ("A2: A4"). Interior.ColorIndex = xlColorIndexNone Dim region As Variant region = Target.value On Error GoTo greșeală: Selectați regiunea de caz Case Is = "Central" Range ("D1"). Value = region Case Is = "East" Range ("D1"). Value = region Case Is = "West" Range ("D1") ") .value = region Alt caz MsgBox" Opțiune nevalidă "Sfârșit Selectați Target.Interior.ColorIndex = 8 Sfârșit Dacă eroare: Sfârșit Sub 

Și s-a făcut. Acum, ori de câte ori veți selecta o celulă din intervalul A2: A4, valoarea acesteia va fi atribuită lui D1 și datele din grafic se vor schimba în consecință.

Am explicat cum funcționează acest cod mai jos. Puteți să o înțelegeți și să faceți modificări conform cerințelor dvs. Am furnizat linkuri pentru a ajuta subiectele pe care le-am folosit aici în acest exemplu. Deci, verificați-le.

Cum funcționează codul?

Aici am folosit evenimentul Excel. Am folosit un eveniment de foaie de lucru „SelectionChange” pentru a declanșa evenimentele.

Dacă nu se intersectează (țintă, interval („A2: A4”)) nu este nimic atunci

Această linie setează focalizarea pe intervalul A2: A4, astfel încât evenimentul SelectionChange să se declanșeze numai atunci când selecția este în intervalul A2: A4. Codul dintre If și End va rula numai dacă selecția este în intervalul A2: A4. Acum îl puteți seta conform cerințelor dvs. pentru a vă dinamiza graficul.

Gama („A2: A4”). Interior.ColorIndex = xlColorIndexNone

Această linie setează culoarea intervalului A2: A4 la nimic.

region = Target.value On Error Go Pentru a greși: 

În cele două linii de mai sus, obținem valoarea celulelor selectate în regiunea variabilă și ignorăm orice eroare care apare. nu utilizați linia „On Error GoTo error:” până când nu sunteți sigur că doriți să ignorați orice eroare care apare. L-am folosit pentru a evita o eroare atunci când selectez mai multe celule.

Selectați 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 "Opțiune nevalidă" Selectare finală 

În rândurile de mai sus, folosim excels Select Case Statement pentru a seta valoarea intervalului D1.

Target.Interior.ColorIndex = 8 End If err: End Sub

Înainte de declarația End If, schimbăm culoarea opțiunii selectate astfel încât să fie evidențiată. Apoi, dacă instrucțiunea se termină și eroare: tag-ul începe. Instrucțiunea On Error va trece la această etichetă dacă apare o eroare în timpul instrucțiunii select.

Descărcați fișierul de lucru de mai jos.

Evenimente cu diagrame încorporate utilizând VBA în Microsoft Excel| Evenimentele cu diagrame încorporate vă pot face diagrama mai interactivă, dinamică și mai utilă decât diagrame normale. Pentru a activa evenimentele pe diagrame, noi …

Evenimentele în Excel VBA |Există șapte tipuri de evenimente în Excel. Fiecare eveniment se ocupă în domenii diferite. Aplicația Eveniment se ocupă la nivel de registru de lucru. Caiet de lucru la nivel de foi. Foaie de lucru Eveniment la nivel Range.

Foaia de lucru Evenimente în Excel VBA| Evenimentul foii de lucru este foarte util atunci când doriți să ruleze macro-urile atunci când apare un eveniment specificat pe foaie.

Evenimente din registrul de lucru folosind VBA în Microsoft Excel | Evenimentele din registrul de lucru funcționează pe întregul registru de lucru. Deoarece toate foile fac parte din registrul de lucru, aceste evenimente funcționează și pe ele.

Preveniți executarea automacro / eventmacro utilizând VBA în Microsoft Excel| Pentru a preveni rularea macro-ului auto_open utilizați tasta Shift.

Diagrama evenimentelor obiectelor folosind VBA în Microsoft Excel| Diagramele sunt obiecte complexe și există mai multe componente pe care le-ați atașat la ele. Pentru realizarea evenimentelor grafice, folosim modulul Class.

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face munca și mai rapidă pe Excel.

Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.

COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu trebuie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.

Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.