다시 한번 더 질문드립니다. 피벗테이블의 값이 변화할 때마다 차트 데이터 범위를 메크로를 사용해서 자동으로 넣고싶습니다.
VBA
작성자
iviolin****
작성일
2020-11-20 22:45
조회
97
예전에 질문 했던 내용에서 파일을 수정하다보니 한가지 더 질문할게 있어서 올립니다.
조언해주신 방법으로 거의 다 완성되어 갑니다만 제가 VBA는 아직 잘 몰라서 완전하게 해결하지 못하네요...
(주간 그래프)의 시트에서 시간 슬라이서 밑에 2개의 차트가 있습니다.
위의 그래프는 피벗테이블로 만든 그래프이고 밑의 그래프는 작업용시트2의 AW25셀을 바탕으로 동적범위로 만든 그래프입니다.
그런데 일반 차트에서 차트 데이터 범위를 동적범위로 만들어준 범위를 넣어줘도 바로 일반적인 범위로 바뀌어서 피벗테이블의 내용이 변경되어도 일반 그래프의 범위는 바뀌지 않더라구요...
이것을 VBA로 해결하고 싶습니다.
즉 피벗테이블의 값이 변할때마다 (주간 그래프)시트의 밑에있는 그래프의 차트 데이터 범위를
=OFFSET(작업용2!$AW$25,,,MATCH("*",작업용2!$AW$25:$AW$101,-1),MATCH("*",작업용2!$AW$25:$BB$25,-1))
로 넣어주고 싶습니다.
회사의 엑셀버전은 Microsoft Office Standard 2013 입니다.
또한 외부 인터넷망이 다 차단되어 있어서 파워피벗을 다운받을 수 도 없습니다.
그렇기에 따로 제가 정규화를 진행하고 가공해서 파일을 만드는 중입니다.
VBA로 그래프의 차트 데이터범위를 자동으로 갱신될 수 있도록 하는 매크로를 가르쳐 주시면 감사하겠습니다.
전체 2,195
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
2187 | 함수/공식 |
New 구글독스 ArrayFormula 적용 문의(날짜별 범위 텍스트의 합)
![]() ![]() |
![]() |
17:08 | 0 | 3 |
2186 | 함수/공식 |
New =IF(OR(ISNUMBER(SEARCH(TRANSPOSE($K$1:$K$3),I524))),"출력값","")
![]() ![]() |
![]() |
15:26 | 0 | 15 |
2185 | 함수/공식 |
New 특정 셀값이 나오면 해당 행 전체를 가져오기
![]() ![]() |
![]() |
13:38 | 0 | 33 |
2184 | 함수/공식 |
New vlookup 함수으로 다중조건 정리
(1)
![]() |
![]() |
13:37 | 0 | 23 |
2183 | 함수/공식 |
New 일자별 매출합계 자동 추가 함수
![]() ![]() |
![]() |
12:37 | 0 | 26 |
2182 | 함수/공식 |
New 매월 최근 데이터로 업데이트 하는 방법
![]() ![]() |
![]() |
11:19 | 0 | 30 |
2181 | 함수/공식 |
New 동적범위 함수 질문
![]() ![]() |
![]() |
11:11 | 0 | 20 |
2180 | 함수/공식 |
New 값이 공백이면 X 표시가 나오게 하는 법
(2)
답변완료
![]() |
![]() |
10:41 | 0 | 27 |
2179 | VBA |
New vba폼에서 옵션단추 그룹 분리(?) 하는 방법
(1)
![]() |
![]() |
10:06 | 0 | 13 |
2178 | VBA |
New 셀병합 코드인데 이상하게 작동이 되네요.
(1)
![]() |
![]() |
08:29 | 0 | 16 |
2177 | 기능/도구 |
New 함수의 결과값을 다른 SHEET의 일정한 셀의 입력값으로 가져가는 해결방법
(2)
![]() |
![]() |
08:26 | 0 | 23 |
2176 | 파워쿼리/피벗 |
New 웹 크로링 문의
![]() |
![]() |
08:01 | 0 | 19 |
2175 | VBA |
New Get_Balance 함수 사용시 불러온 DB를 참조하기
(1)
답변완료
![]() |
![]() |
2021.01.25 | 0 | 21 |
2174 | 함수/공식 |
New 이런 조건부 함수가 가능할까요?
(2)
![]() |
![]() |
2021.01.25 | 1 | 43 |
2173 | 함수/공식 |
New 두줄로 입력된 텍스트를 한줄씩 나눠서 정리하는 방법에서
(2)
![]() |
![]() |
2021.01.25 | 0 | 32 |
2172 | 함수/공식 |
New 함수문의
![]() ![]() |
![]() |
2021.01.25 | 0 | 33 |
2171 | 문서서식 |
New 엑셀 메모서식 in macOS
(2)
![]() |
![]() |
2021.01.25 | 0 | 22 |
2170 | 함수/공식 |
New 판매누적금액응 선착순으로 달성한 사람 구하는 함수
![]() ![]() |
![]() |
2021.01.25 | 0 | 43 |
2169 | 함수/공식 |
New 특정문자를 포함하는 데이터 오른쪽 값 추출
![]() ![]() |
![]() |
2021.01.25 | 0 | 37 |
2168 | 함수/공식 |
New 다중데이터 유효성 목록 관련
(3)
답변완료
![]() |
![]() |
2021.01.25 | 0 | 38 |
2167 | 함수/공식 |
New 급여 소득세 함수 질문
![]() ![]() |
![]() |
2021.01.25 | 0 | 42 |
2166 | 함수/공식 |
New 엑셀 자료에서 다중 조건일때, 자료 찾아 오기. 내림 차순으로.
![]() ![]() |
![]() |
2021.01.25 | 1 | 50 |
2165 | 함수/공식 |
New 상품상의 주차 기준으로 , 보증기간 적용 유무 함수
![]() ![]() |
![]() |
2021.01.25 | 0 | 24 |
2164 | 함수/공식 |
New 당직근무자 자동생성 관련
![]() ![]() |
![]() |
2021.01.25 | 0 | 48 |
2163 | 기능/도구 |
New 혹시 엑셀에서 이런 기능이 구현 가능할까요?
(4)
![]() |
![]() |
2021.01.25 | 0 | 68 |
2162 | 함수/공식 |
New vlookup 사용할때 ,
![]() ![]() |
![]() |
2021.01.25 | 0 | 43 |
2161 | VBA |
New 웹에 업로드되어있는 csv, pdf 파일에서 크롤링해오는방법?!
(3)
답변완료
![]() |
![]() |
2021.01.25 | 0 | 40 |
2160 | 함수/공식 |
New 주차 알기 함수
(3)
답변완료
![]() |
![]() |
2021.01.24 | 0 | 64 |
2159 | 함수/공식 |
New 주중으로만 보이는 출석부
![]() ![]() |
![]() |
2021.01.24 | 1 | 68 |
2158 | 함수/공식 |
New 두 날짜 사이에 해당 값 추출 질문
(1)
![]() |
![]() |
2021.01.24 | 0 | 31 |
안녕하세요.
더 정확한 답변을 드리기 위해 한가지 더 확인이 필요해보입니다.
차트 데이터 범위를 갱신한다는 것이,
1안, 기존의 데이터 범위에서 새롭게 데이터가 추가된 범위(=확장된 범위)로 갱신하는 건가요?
2안, 기존의 데이터 범위에서 벗어나 다른 새로운 범위(예: A열 -> B열로 이동) 하는 것인가요?
두 방법 모두 VBA없이 구현은 가능합니다만 2안은 함수로만 구현할 경우 데이터가 많을시 처리속도 문제가 발생할 수 있습니다.
만약 1안 이시라면, 아래 강의를 참고하시면 도움이 될 듯 하구요.. (차트의 동적범위는 각 항목별로 따로 지정해주셔야 합니다)
엑셀 동적차트 기초부터 고급 응용까지 :: 실전 예제 총정리
만약 2안이라면 VBA 매크로 녹화기능을 사용해서 변경하고자 하는 개체/함수를 확인하신 뒤 작업하시면 좋지 않을까 생각됩니다.
차트는 안에 포함된 개체가 매우 많고 각 개체별로 속성/함수도 다양한 관계로, 정확한 답변을 콕 찝어서 드리기가 어려운 부분이 있습니다. 또는 구글에 vba change chart data range 검색해서 관련 stack overflow 글을 확인하시는 것도 도움이 될 듯 합니다.^^
답변이 도움이 되셨길 바랍니다.
1안의 내용이지만 조금 다릅니다.
이미 동적범위로 이름관리자에 만들어 놨습니다. 동적범위로 만든 범위의 이름은 그래프 범위입니다.
슬라이서에서 2개를 선택하든 5개를 선택하든 그에 따른 값이 AW25셀쪽에 나타나게 해두었고 또한 동적범위를 사용해서 그 변하는 범위가 전부 포함되게 이름관리자의 수식을 만들어 놨습니다.
슬라이서의 선택량에 따라 작업용2시트의 AW25셀의 가로축 레이블의 크기가 달라지기에 강의내용을 쓸 수 없습니다.
그렇기에 차트 데이터 범위를 미리 이름관리자에 만들어 둔 "그래프 범위"라는 동적범위로 슬라이서의 값이 변화될 때마다 갱신하고 싶습니다.
슬라이서에서 고구마깡, 썬칩, 치토스와 같이 다중선택을 해도 그래프가 나올 수 있게 동적 범위를 만들었지만 차트데이터범위를 메크로로 넣는 방법을 모르겠네요 부탁드립니다.
안녕하세요.
차트 데이터 범위를 VBA로 넣으시려면 아래 링크를 참고해보세요.
https://docs.microsoft.com/en-us/office/vba/api/excel.chart.setsourcedata
실제 사용 예제는 아래 StackOverFlow 예제를 참고하시면 도움이 될 듯 합니다.
https://stackoverflow.com/questions/19285577/vba-modify-chart-data-range
4번째 답변을 참고해보세요. 답변이 도움이 되셨길 바랍니다.
감사합니다 올려주신 내용을 토대로 VBA를 만들어서 제가 원하는 최종 파일을 만드는데 성공했습니다.
완성된 파일도 올려둘께요.
많이 질문했었는데 좋은 답변해주셔서 감사합니다.
첨부파일 : 주간-과자-수출수입량-그래프-완성.xlsm