선택한 옵션에 따라 데이터를 변경하는 차트로 대시 보드를 만들려면 VBA에서 이벤트를 사용할 수 있습니다. 예, 할 수 있습니다. 드롭 다운, 슬라이서 또는 콤보 상자가 필요하지 않습니다. 셀을 클릭 가능하게 만들고 데이터를 변경하여 선택한 셀에서 차트를 만듭니다.

image

셀 선택에 따라 변경되는 Excel에서 동적 차트를 만들려면 아래 단계를 따르십시오.

1 단계 : 차트의 소스로 시트의 데이터를 준비합니다.

여기에는 시트에있는 여러 지역의 샘플 데이터가 있습니다. 나는 그것을 소스 데이터라고 명명했다.

image

2 단계 : 한 지역의 데이터를 다른 시트에서 한 번에 가져옵니다.

  • 이제 새 시트를 삽입하십시오. 적절하게 이름을 지정하십시오. 나는 그것을 “대시 보드”라고 명명했다.

  • 한 열에 모든 달을 복사합니다. 월 옆에 하나의 지역 이름을 씁니다.

image

  • 이제 우리는 Cell D1의 영역 데이터를 가져 오려고합니다. D1에서 지역이 변경됨에 따라 데이터가 변경되기를 원합니다. 이를 위해`link : / lookup-formulas-vlookup-with-dynamic-col-index [Two Way Lookup]`을 사용할 수 있습니다.

내 소스 데이터가 소스 데이터 시트의 A2 : D8에 있기 때문에. 아래 공식을 사용합니다.

=VLOOKUP(C2,’Source

Data’!$A$2:$D$8,MATCH($D$1,’Source

Data’!$A$1:$D$1,0))

여기서는 VLOOKUP에 대해 동적 열 인덱싱을 사용합니다. 그것에 대해`link : / lookup-formulas-vlookup-with-dynamic-col-index [here]`를 읽을 수 있습니다.

  • 대시 보드 시트에이 데이터를 사용하여 차트를 삽입합니다. 저는 간단한 꺾은 선형 차트를 사용합니다. 표시하지 않으려면 차트 소스를 숨 깁니다.

image

이제 D1에서 지역 이름을 변경하면 차트도 그에 따라 변경됩니다. 다음 단계는 지정된 셀에서 옵션을 선택할 때 D1의 영역 이름을 변경하는 것입니다.

3 단계 : 지정된 범위에서 지역 이름을 선택하여 지역을 변경합니다. * 범위의 모든 지역 이름을 쓰고 A2 : A4 범위에 씁니다.

image

  • 대시 보드 시트 이름을 마우스 오른쪽 버튼으로 클릭하고 “코드보기”를 클릭합니다.

‘link : / events-in-vba-the-worksheet-events-in-excel-vba [worksheet event]’를 사용할 수 있도록 VBE의 워크 시트 모듈에 직접 입력하는 옵션입니다.

image

  • 이제 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

On Error GoTo err:

Select 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 "Invalid Option"

End Select

Target.Interior.ColorIndex = 8

End If

err:

End Sub

그리고 끝났습니다. 이제 A2 : A4 범위의 셀을 선택할 때마다 해당 값이 D1에 할당되고 그에 따라 차트의 데이터가 변경됩니다.

image

이 코드가 아래에서 어떻게 작동하는지 설명했습니다. 이를 이해하고 요구 사항에 따라 변경할 수 있습니다. 이 예에서 여기에 사용한 도움말 항목에 대한 링크를 제공했습니다. 그래서 그들을 확인하십시오.

코드는 어떻게 작동합니까?

여기서는 ‘link : / events-in-vba-the-events-in-excel-vba [Event of Excel]’을 사용했습니다. 이벤트를 트리거하기 위해`link : / events-in-vba-the-worksheet-events-in-excel-vba [worksheet event]` “SelectionChange”를 사용했습니다.

If Not Intersect(Target, Range("A2:A4")) Is Nothing Then

이 줄은 A2 : A4 범위로 포커스를 설정하므로 선택 항목이 A2 : A4 범위에있을 때만 SelectionChange 이벤트가 발생합니다. If와 End 사이의 코드는 선택 범위가 A2 : A4 인 경우에만 실행됩니다. 이제 차트를 동적으로 만들기 위해 요구 사항에 따라 설정할 수 있습니다.

Range("A2:A4").Interior.ColorIndex = xlColorIndexNone

이 줄은 A2 : A4 범위의 색상을 아무것도 설정하지 않습니다.

region = Target.value

On Error GoTo err:

위의 두 줄에서 우리는 가변 영역에서 선택한 셀의 값을 얻고 발생하는 오류를 무시합니다. 발생하는 모든 오류를 무시할 수있을 때까지 “On Error GoTo err :”줄을 사용하지 마십시오. 여러 셀을 선택할 때 오류를 피하기 위해 사용했습니다.

Select 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 "Invalid Option"

End Select

위의 행에서 엑셀`link : / general-topics-in-vba-vba-select-case-alternative-of-nested-if-else-if-statements [Select Case Statement]`를 사용하여 값을 설정합니다. 범위 D1의.

Target.Interior.ColorIndex = 8

End If

err:

End Sub

End If 문 전에 선택한 옵션의 색상을 변경하여 강조 표시합니다. 그런 다음 If 문이 끝나고 err : 태그가 시작됩니다.

On Error 문은 select 문 중에 오류가 발생하면이 태그로 이동합니다.

아래 작업 파일을 다운로드하십시오.

image 48

관련 기사 :

link : / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Microsoft Excel에서 VBA를 사용하는 포함 된 차트 이벤트]* | 포함 된 차트 이벤트를 사용하면 차트를 일반 차트보다 더 상호 작용적이고 동적이며 유용하게 만들 수 있습니다. 차트에서 이벤트를 활성화하려면 …​

link : / events-in-vba-the-events-in-excel-vba [Excel VBA의 이벤트]| * Excel에는 7 가지 유형의 이벤트가 있습니다. 각 이벤트는 다른 범위에서 처리됩니다. 응용 프로그램 이벤트는 통합 문서 수준에서 다룹니다. 시트 수준의 통합 문서. 범위 수준의 워크 시트 이벤트입니다.

link : / events-in-vba-the-worksheet-events-in-excel-vba [Excel VBA의 워크 시트 이벤트]* | 워크 시트 이벤트는 지정된 이벤트가 발생할 때 매크로를 실행하려는 경우 매우 유용합니다. 시트.

link : / events-in-vba-workbook-events-using-vba-in-microsoft-excel [Microsoft Excel에서 VBA를 사용하는 통합 문서 이벤트]| 통합 문서 이벤트는 전체 통합 문서에서 작동합니다. 모든 시트가 통합 문서의 일부이므로 이러한 이벤트도 해당 시트에서 작동합니다.

link : / events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [Microsoft Excel에서 VBA를 사용하여 자동 매크로 / 이벤트 매크로 실행 방지]* | auto_open 매크로 실행을 방지하려면 Shift 키를 사용하십시오.

link : / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Microsoft Excel에서 VBA를 사용하는 차트 개체 이벤트]* | 차트는 복잡한 개체이며 여기에 연결 한 여러 구성 요소가 있습니다. 차트 이벤트를 만들기 위해 클래스 모듈을 사용합니다.

인기 기사 :

link : / keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [50 Excel 단축키로 생산성 향상]| 작업 속도를 높이십시오. 이 50 개의 바로 가기를 사용하면 Excel에서 작업 속도가 더욱 빨라집니다.

link : / formulas-and-functions-introduction-of-vlookup-function [Excel의 VLOOKUP 함수]| 이것은 다른 범위와 시트에서 값을 조회하는 데 사용되는 Excel의 가장 많이 사용되고 인기있는 기능 중 하나입니다.

link : / tips-countif-in-microsoft-excel [Excel 2016의 COUNTIF]| 이 놀라운 기능을 사용하여 조건으로 값을 계산합니다. 특정 값을 계산하기 위해 데이터를 필터링 할 필요가 없습니다.

Countif 기능은 대시 보드를 준비하는 데 필수적입니다.

link : / excel-formula-and-function-excel-sumif-function [Excel에서 SUMIF 함수 사용 방법]| 이것은 또 다른 대시 보드 필수 기능입니다. 이를 통해 특정 조건에 대한 값을 합산 할 수 있습니다.