설비 Layout 도면에서 장비번호 검색시 도형이 있는 위치로 이동하는 방법

문서서식
작성자
아빠의꿈
작성일
2021-10-13 16:27
조회
565
엑셀버전 : 엑셀2019

운영체제 : 윈도우10

설비 Layout  도면에 설비를 도형으로 표시하고, 그안에 설비명을 입력했는데

라인이 길다보니 한번에 설비 위치를 찾기가 쉽지 않아서

방법을 문의하려고 합니다.

 

layout  sheet는 3개이고, 1개의 sheet에 설비 List를 작성했을때

설비 List  Sheet에서 한셀에 설비명을 입력하고 엔터를 치거나 옆에 버튼이 있어서 " 찾기 " 버튼을 누르면 해당설비가 있는 위치로

화면이 이동했으면 합니다.

샘플 파일에 적용부탁드리고,

혹시 어떻게 하는지 방법에 대해서도 자세히 설명 부탁드립니다.

 

감사합니다.

스크랩
공유
회원등급 : 27레벨
포인트 : 3700 EP
총질문 : 12 개 (마감율 : 100%)
채택답변 : 0 개
전체 9

  • 2021-10-13 18:37

    @아빠의꿈https://youtu.be/cQ6ajVsrm6g

    요 강의를 참고해보세요

    핸드폰으로는 열수가 없는파일이라 수식을 짜는것은 제가 지금 밖이라 집에 들어가면 한번 해보겠습니다.


  • 2021-10-13 22:26

    @아빠의꿈 님 흠 이제보니 셀이동이아닌 도형찾기 이군요.

    혹시 검색할 설비가 M/C S/NM/C S/N 리스트에 항상 있나요? 아니면 없을 수도 있나요?

    그리고 만약 검색할 설비가 도형으로 존재하지 않는다면 그냥 명령문을 종료하면 되나요?


    • 2021-10-14 16:46

      @iviolin**** 님  

      1. 네 도형찾기 입니다.
      2. 리스트에 없을수도 있고 있을수도 있습니다. 도형을 먼저 그려넣고 리스트에 업데이트 할생각인데 업데이트가 안되었을수도 있지만 도형이 있는것을 찾는것입니다.
      3. 네 도형이 없으면 값을 안나타내고 종료해도 됩니다.

       

      네 도형으로 위치표시하고 도형 안에 설비명을 입력해놓아서 도형찾기가 맞습니다.

      없을수도 있구요,

      네 도형이 없으면 값을 안나와도 되고 이동이 안되도 상관 없을것 같습니다.

      도형으로 표시한 설비의 위치를 찾는게 목적이라서요

      '설비 List' Sheet에서 검색할 설비명을 입력하고 바로 옆에 셀이나 설비명 입력한 셀 옆에

      버튼을 만들어 주어서 그버튼을 누르면 해당 도형이 있는 곳으로 화면이 이동되도록 하면 됩니다.

      넓은곳에서 해당설비가 어느 기둥옆에 있는지 확인하기 위한것으로

      도형안에 있는 글자를 검색하는방법 찾기가 어렵네요

       


      • 2021-10-14 23:42
        채택된 답변

        @아빠의꿈 님 만들다보니 시간이 너무 늦어서 세세한 부분은 못건드렸습니다.

        Intersect를 이용해서 H3셀이 변경될 때만 제가 만든 메크로가 실행되게 만드시면 됩니다.

        화이팅하세요~~

        첨부파일 : ShapeScreenMove.xlsm


        • 2021-10-25 13:46

          @iviolin**** 님 너무 감사합니다.

          잠깐 해봤는데 제가 찾고 있던 방법이네요

          어떻게 작성하는지 매크로 방법 자세히 알수 있을까요? 방법을 배우고 싶습니다.

           


          • 2021-10-26 08:08

            @아빠의꿈 님 아직 저게 미완성 본이라 제대로 파일을 만들고 나면 설명해드리겠습니다.

            저도 쪼금 바빠서 3일내로 완성본업로드까지 해보겠습니다,


            • 2021-10-26 20:41
              Private Sub Worksheet_Change(ByVal Target As Range)
              
              Dim Sh As Worksheet
              
              Dim Sha As Shape
              Dim SelectShape As Shape
              
              Dim AddressString As String
              Dim Temp As String
              Dim AddressColumn As String
              Dim AddressRow As String
              Dim ShName As String
              
              Dim i As Long
              
              If Not Intersect(Target, ThisWorkbook.Worksheets("설비 List").Cells(3, 8)) Is Nothing Then
              
                  For Each Sh In ThisWorkbook.Worksheets
                      For Each Sha In Sh.Shapes
                          If InStr(1, Sha.TextFrame2.TextRange.Text, Worksheets("설비 List").Cells(3, 8).Value) >= 1 Then
                                  ShName = Sh.Name
                                  AddressString = Sha.TopLeftCell.Address
                                  AddressString = Replace(AddressString, "$", "")
                                  
                                  For i = 1 To Len(AddressString)
                                      Temp = Mid(AddressString, i, 1)
                                      If Temp Like "[A-Z]" Then
                                          AddressColumn = AddressColumn & Temp
                                      ElseIf Temp Like "[0-9]" Then
                                          AddressRow = AddressRow & Temp
                                      End If
                                  Next
                          End If
                      Next
                  Next
                  If ShName = "" Then Exit Sub
                  AddressColumn = Range(AddressColumn & "1").Column
                  Worksheets(ShName).Activate
                  Worksheets(ShName).Cells(CLng(AddressRow), CLng(AddressColumn)).Select
              
              End If
              
              End Sub

               

              첨부파일 : ShapeScreenMove.xlsm


              • 2021-10-26 20:57

                Private Sub Worksheet_Change(ByVal Target As Range)에 의해 시트내의 값이 변화할 때마다 코드를 실행해줍니다.

                If Not Intersect(Target, ThisWorkbook.Worksheets("설비 List").Cells(3, 8)) Is Nothing Then

                Intersect 는 교집합을 나타내는 명령어 입니다.

                Cells(3,8)과 Target이 교집합이 있다면 If문을 실행하라고 만들어줍니다.

                For Each Sh In ThisWorkbook.Worksheets

                For Each Sha In Sh.Shapes

                에 의해 워크시트 내의 모든 시트들과 시트안의 도형들을 탐색합니다.

                If InStr(1, Sha.TextFrame2.TextRange.Text, Worksheets("설비 List").Cells(3, 8).Value) >= 1 Then

                InStr은 Search함수와 비슷한 기능으로써 어떠한 텍스트가 찾고자 하는 텍스트에 있는지를 알아봐주는 코드입니다.

                그리고 TextFrame2.TextRange.Text가 해당 도형의 텍스트를 나타내는 코드인것 같더군요.

                만약 오류가 뜨면 엑셀 버전에 따른 오류라고 봅니다.

                오류가 뜨는경우 메크로 기록을 하셔서 도형안의 텍스트를 변화시켜보시고 기록된 메크로에서 도형의 텍스트를 가르키는 코드가뭔지 알아내신다음 TextFrame2.TextRange.Text 자리에 넣어주시면 됩니다.

                그리고 For Each문에 의해 도형들을 하나씩 탐색하던 중 Instr()에 의해 H3셀의 값이 도형의 텍스트에 포함되어 있는 경우

                해당 도형이 있는 셀의 왼쪽 위 셀의 값을 AddressString = Sha.TopLeftCell.Address 통해 받습니다.

                그리고 해당 주소를 여러차례 가공하여

                해당 도형의 행이 몇번째 행인지, 몇번째 열인지 가져와주고

                도형이 있는 시트를 Activate 시킨다음 아까 알아온 도형의 행,열을 Select시켜줍니다.

                이렇게 셀주소를 가공하여 Select하는 이유는

                TopLeftCell.Address로 얻어온 주소를 통해

                Worksheets(ShName).Range(ShName.AddressString).Select로 바로할려니 오류가 떠서 가공을 해주었습니다.

                또한 해당시트를 Activate시키지 않고 Select하려고 해도 오류가 나와 해당 시트를 Activate하는 과정까지 해주셔야한다는 점 유의해주시면됩니다.


  • 2021-10-16 23:24

    @아빠의꿈 님 배우려니 너무 어렵내요

    난 언제쯤 이런걸 다 배울지

    엑셀 잘 하시는분들 너무 부럽내요^^


전체 7,795
번호 카테고리 제목 작성자 작성일 추천 조회
알림
🎉다양한 이벤트와 함께 진행하는, PPT 보고서 디자인 특강 안내 - 9/24 (토) 오후 9시~ (15)
오빠두엑셀 | 2022.09.08 | 추천 9 | 조회 2402
오빠두엑셀 2022.09.08 9 2402
공지사항 함수/공식
[신규 기능 업데이트!] 👉 이제 게시글 작성시 스크린샷 복/붙이 가능합니다! 😎 (3)
오빠두엑셀 | 2022.08.04 | 추천 4 | 조회 1655
오빠두엑셀 2022.08.04 4 1655
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (95)
오빠두엑셀 | 2021.10.28 | 추천 124 | 조회 7402
오빠두엑셀 2021.10.28 124 7402
42561 함수/공식
New 날짜 검색 수식 관련 질문
마루모토 | 18:09 | 추천 0 | 조회 5
마루모토 18:09 - 5
42559 기능/도구
New 행x열 표를 한 열로 쉽게 바꾸는 방법 문의 엑셀파일첨부파일 (1)
mac**** | 17:31 | 추천 0 | 조회 12
mac**** 17:31 - 12
42558 VBA
New 매크로로 특정셀이 공란일 때 특정셀 내용을 다 지우는 방법 (1)
디엠 | 17:09 | 추천 0 | 조회 13
디엠 17:09 - 13
42555 문서서식
New A1 A3 A4 값을 열로 자동채우기 (7) 답변완료
chri**** | 16:13 | 추천 0 | 조회 24
chri**** 16:13 - 24
42554 차트/그래프
New 피벗차트의 제목 연결 만들기 첨부파일 (1)
하늘보기119 | 16:06 | 추천 0 | 조회 19
하늘보기119 16:06 - 19
42552 함수/공식
New 날짜 검색 조건 질문 (3) 답변완료
마루모토 | 15:56 | 추천 0 | 조회 18
마루모토 15:56 - 18
42551 함수/공식
New 데이타 유효성 검사문제 엑셀파일 (2)
redi**** | 14:57 | 추천 0 | 조회 22
redi**** 14:57 - 22
42549 VBA
New VBA 뉴스기사 크롤링 관련 질문입니다. 첨부파일 (1)
jjang**** | 14:49 | 추천 0 | 조회 22
jjang**** 14:49 - 22
42547 VBA
New 복사붙여넣기 매크로 (도와주세요 ㅠㅠㅠ) (재질문) 엑셀파일첨부파일
wldud**** | 14:40 | 추천 0 | 조회 22
wldud**** 14:40 - 22
42542 함수/공식
New 엑셀 VLookup 함수에서 두 곳 중 한 곳에만 결과값이 안나오는 이유가 무엇일까요? 엑셀파일 (7)
김기태 | 12:21 | 추천 0 | 조회 42
김기태 12:21 - 42
42540 피벗테이블
New 피벗테이블 특정항목만 X2, X3 자동 곱하기 되게 엑셀파일첨부파일
알럽고구마 | 12:18 | 추천 1 | 조회 22
알럽고구마 12:18 1 22
42533 함수/공식
New 숫자 추출 후 더하기 및 곱하기 엑셀파일첨부파일 (3) 답변완료
하나포 | 10:55 | 추천 0 | 조회 24
하나포 10:55 - 24
42531 문서서식
New data 값이 없을 때는 어떤 값을 입력하면 괜찮은가요? (1)
twou**** | 10:38 | 추천 0 | 조회 28
twou**** 10:38 - 28
42526 VBA
New 복사붙여넣기 매크로 (도와주세요 ㅠㅠㅠ) 엑셀파일첨부파일
wldud**** | 09:43 | 추천 0 | 조회 44
wldud**** 09:43 - 44
42523 기능/도구
New 엑셀에 카메라 기능이 안됩니다. 첨부파일 (4)
무럭무럭예찬이 | 08:42 | 추천 0 | 조회 39
무럭무럭예찬이 08:42 - 39
42516 함수/공식
New 날짜에 대한 IF함수 엑셀파일 (2)
sky3**** | 2022.09.27 | 추천 0 | 조회 47
sky3**** 2022.09.27 - 47
42515 함수/공식
New 집계현황에 각시트의 해당되는 값을 찾는 함수가 필요합니다. 엑셀파일 (2)
낮은자 | 2022.09.27 | 추천 0 | 조회 29
낮은자 2022.09.27 - 29
42514 함수/공식
New 작업순서 변경 시 하나 바꿀 때 나머지 작업순서도 연동되어 바꾸는 방법 (생산관리, 생산계획) 첨부파일 (2)
스키마타 | 2022.09.27 | 추천 0 | 조회 34
스키마타 2022.09.27 - 34
42509 VBA
New MsoScroll 지우는 방법. 첨부파일 (2)
033cola | 2022.09.27 | 추천 0 | 조회 36
033cola 2022.09.27 - 36
42507
New subtotal + 필터적용시 오류 문의 입니다. 엑셀파일 (2)
1003po**** | 2022.09.27 | 추천 0 | 조회 39
1003po**** 2022.09.27 - 39
42503 파워쿼리/피벗
New 피벗테이블 / 파워커리 행 늘리는 방법 문의 엑셀파일첨부파일 (1)
주태훈 | 2022.09.27 | 추천 0 | 조회 41
주태훈 2022.09.27 - 41
42501 파워쿼리/피벗
New 파워피벗 열조건 비율 계산 엑셀파일첨부파일 (1)
bstm**** | 2022.09.27 | 추천 0 | 조회 43
bstm**** 2022.09.27 - 43
42495 함수/공식
New 문제관련 (7)
제두진 | 2022.09.27 | 추천 0 | 조회 45
제두진 2022.09.27 - 45
42488 VBA
New 엑셀 고급필터 자동화 질문드립니다. (부탁드립니다 ㅠㅠ) (재질문) 엑셀파일 (2) 답변완료
wldud**** | 2022.09.27 | 추천 0 | 조회 57
wldud**** 2022.09.27 - 57
42485 함수/공식
New 여기 엑셀 고급 11강 - FILTER에 대해서 엑셀파일 (5) 답변완료
구름나그네 | 2022.09.27 | 추천 0 | 조회 48
구름나그네 2022.09.27 - 48
42482 문서서식
New 중복값 표시하기가 이해가 안됩니다. 할 수 있는 방법 좀 알려주세요 첨부파일 (1)
엑셀마스터가되고싶다 | 2022.09.26 | 추천 0 | 조회 38
엑셀마스터가되고싶다 2022.09.26 - 38
42478 VBA
New 특정한 값이 있는 행 추출(작성된 VBA 수정) 엑셀파일첨부파일 (1)
007 | 2022.09.26 | 추천 0 | 조회 49
007 2022.09.26 - 49
42476 파워쿼리/피벗
New 여러개의 외부 데이터에서 특정 값 기준으로 계산한 결과값을 보여주는 쿼리 엑셀파일 (5)
로보트태권브이 | 2022.09.26 | 추천 0 | 조회 34
로보트태권브이 2022.09.26 - 34
42468 피벗테이블
New 피벗테이블 데이터 갱신 오류 엑셀파일첨부파일 (1)
퓨리시아 | 2022.09.26 | 추천 0 | 조회 33
퓨리시아 2022.09.26 - 33
42466 VBA
New 검색어 입력시 영어 소문자... 첨부파일 (3)
조지아 칸타타 | 2022.09.26 | 추천 0 | 조회 35
조지아 칸타타 2022.09.26 - 35