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

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

운영체제 : 윈도우10

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

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

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

 

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

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

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

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

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

 

감사합니다.

회원등급 : 26레벨
포인트 : 3540 EP
총질문 : 12 개 (마감율 : 92%)
채택답변 : 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

              @iviolin****

              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

                @iviolin**** 님 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

    배우려니 너무 어렵내요

    난 언제쯤 이런걸 다 배울지

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


전체 4,679
번호 카테고리 제목 작성자 작성일 추천 조회
공지사항 공지사항
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (10)
오빠두엑셀 | 2021.10.28 | 추천 16 | 조회 753
트로피 오빠두엑셀 2021.10.28 16 753
24253 함수/공식
New 파일과 관련된 숫자를 다른 파일에 있는 숫자로 변경할 수 있는 방법 첨부파일 (1)
안녕 | 2021.12.02 | 추천 0 | 조회 11
안녕 2021.12.02 0 11
24252 함수/공식
New 표 범위 내에서 맨 좌측값 가져오기 질문드립니다. (2)
김성환 | 2021.12.02 | 추천 0 | 조회 12
김성환 2021.12.02 0 12
24251 기능/도구
New 엑셀 주식 가격 예측 양식 사용 질문입니다. 첨부파일 (1)
thause | 2021.12.02 | 추천 0 | 조회 18
thause 2021.12.02 0 18
24249 VBA
New 모든 하위 폴더 내의 최신 파일 하나만을 특정 폴더로 복사하려 합니다
너의나라 | 2021.12.02 | 추천 0 | 조회 17
너의나라 2021.12.02 0 17
24248 차트/그래프
New 그래프에서 가로 축 Data 설정하는 법 첨부파일
Etter | 2021.12.02 | 추천 0 | 조회 20
Etter 2021.12.02 0 20
24245 VBA
New 아웃룩 이메일 내용에 VBA 변수 넣기 (1)
argus | 2021.12.02 | 추천 0 | 조회 21
argus 2021.12.02 0 21
24239 VBA
New [초보] 웹 크롤링 관련 질문입니다. 첨부파일 (2) 답변완료
스캐쳐 | 2021.12.02 | 추천 0 | 조회 24
스캐쳐 2021.12.02 0 24
24238 VBA
New 어떤 한 배열에서 다른 배열에 있는 값만 제외하고 새로운 배열3을 만들 수 있을까요? (2)
Paul | 2021.12.02 | 추천 0 | 조회 24
Paul 2021.12.02 0 24
24233 함수/공식
New 0이상의 값(유효값)이 있는 칼럼과 그 값을 불러오고 싶습니다. 첨부파일 (2) 답변완료
크놉스 | 2021.12.02 | 추천 0 | 조회 25
크놉스 2021.12.02 0 25
24232 차트/그래프
New 엑셀 차트에서 특정 값이 너무 높을때 차트화 하는 법 (2) 답변완료
담담 | 2021.12.02 | 추천 0 | 조회 31
담담 2021.12.02 0 31
24230 VBA
New vba 코딩을 부탁드립니다. 첨부파일 (2)
Trimman | 2021.12.02 | 추천 -2 | 조회 33
Trimman 2021.12.02 -2 33
24228 함수/공식
New 등급 기준표를 참조해서 연산을 하려고 할때 (1) 답변완료
지천 | 2021.12.02 | 추천 0 | 조회 22
지천 2021.12.02 0 22
24221 파워쿼리/피벗
New 엑셀 종속 테이블 문의 첨부파일 (2)
유령회원 | 2021.12.02 | 추천 0 | 조회 22
유령회원 2021.12.02 0 22
24216 VBA
New 로그인엑셀 사용시 수식입력줄 사라짐, 모든 엑셀창 자동종료 첨부파일 (1)
엑셀이 | 2021.12.02 | 추천 0 | 조회 19
엑셀이 2021.12.02 0 19
24215 VBA
New set_routine 반복 매크로 (1)
하늘의 꿈 | 2021.12.01 | 추천 0 | 조회 24
하늘의 꿈 2021.12.01 0 24
VBA
New 재질문 입니다.
하늘의 꿈 | 2021.12.02 | 추천 0 | 조회 12
하늘의 꿈 2021.12.02 0 12
24213 파워쿼리/피벗
New [파워쿼리] 계약자코드 중 특수계약 날짜가 일반계약 최소 최대 사이에 포함여부 열추가 첨부파일 (1)
seorin | 2021.12.01 | 추천 0 | 조회 20
seorin 2021.12.01 0 20
24211 VBA
New 시트를 메일머지하여 Hancom PDF 파일로 출력하는 매크로 VBA 코드 도움을 받고 싶어요. 첨부파일 (4) 답변완료
김학동 | 2021.12.01 | 추천 0 | 조회 34
김학동 2021.12.01 0 34
24210 함수/공식
New 혹시 이런 것도 구할 수 있을까요? (3)
마른막대기 | 2021.12.01 | 추천 0 | 조회 38
마른막대기 2021.12.01 0 38
24207 함수/공식
New 중복값 중 제일 마지막 값 추출 (2)
rladud99 | 2021.12.01 | 추천 0 | 조회 39
rladud99 2021.12.01 0 39
24203 함수/공식
New 엑셀 값 가로/세로 변경하는 방법 문의드려요! 첨부파일 (2) 답변완료
이시현 | 2021.12.01 | 추천 0 | 조회 38
이시현 2021.12.01 0 38
24200 함수/공식
New 데이터를 일정간격으로 띄워서 입력하고 싶습니다. (8) 답변완료
wlfl**** | 2021.12.01 | 추천 0 | 조회 47
wlfl**** 2021.12.01 0 47
24191 함수/공식
New 일치하는 값에 특정 데이터를 넣고싶습니다. (1)
노랑토끼 | 2021.12.01 | 추천 0 | 조회 54
노랑토끼 2021.12.01 0 54
24188 VBA
New VBA에서 이름이 긴 파일이 있는데 그 파일 이름을 바꾸고 싶습니다.(상세설명 필수) (2)
naver_618c988d51534 | 2021.12.01 | 추천 0 | 조회 31
naver_618c988d51534 2021.12.01 0 31
24184 문서서식
New 엑셀 자동채우기 관련 문의 (1) 답변완료
오문환 | 2021.12.01 | 추천 0 | 조회 42
오문환 2021.12.01 0 42
24182 함수/공식
New 줄바꿈 함수 도와주세요 첨부파일 (3)
김상준 | 2021.12.01 | 추천 1 | 조회 43
김상준 2021.12.01 1 43
24177 기능/도구
New 매크로 와 자동필터
FLOWERBALL | 2021.11.30 | 추천 0 | 조회 48
FLOWERBALL 2021.11.30 0 48
24168 VBA
New (문의) 번호가 같을경우 옆에 있는 셀의 값을 병합 (1)
ryan_cruze | 2021.11.30 | 추천 0 | 조회 44
ryan_cruze 2021.11.30 0 44
24166 기능/도구
New 질문있습니다.
최강씨맨 | 2021.11.30 | 추천 0 | 조회 34
최강씨맨 2021.11.30 0 34
24163 함수/공식
New 엑셀 특정 내용 추출하는 수식 질문드립니다. (2)
PAKSAW | 2021.11.30 | 추천 0 | 조회 52
PAKSAW 2021.11.30 0 52
24161 함수/공식
New 특정 날짜 값 찾기 (2)
ㄱ박민극 | 2021.11.30 | 추천 -1 | 조회 47
ㄱ박민극 2021.11.30 -1 47