CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·방탄소년당 ·MaClien ·일본산당 ·자전거당 ·개발한당 ·이륜차당 ·AI당 ·바다건너당 ·노젓는당 ·클다방 ·소셜게임한당 ·물고기당 ·안드로메당 ·콘솔한당 ·소시당 ·갖고다닌당 ·찰칵찍당 ·걸그룹당 ·ADHD당 ·VR당 ·창업한당 ·나혼자산당 ·가상화폐당 ·골프당 ·여행을떠난당 ·방송한당 ·냐옹이당 ·레고당 ·나스당 ·캠핑간당 ·개판이당 ·e북본당 ·3D메이킹 ·X세대당 ·AI그림당 ·날아간당 ·사과시계당 ·육아당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·문명하셨당 ·클래시앙 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·디아블로당 ·동숲한당 ·날아올랑 ·전기자전거당 ·이브한당 ·패셔니앙 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·키보드당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·리눅서당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·PC튜닝한당 ·그림그린당 ·소풍간당 ·심는당 ·패스오브엑자일당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·스타한당 ·스팀한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·터치패드당 ·트윗당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

팁과강좌

PC/모바일 엑셀(EXCEL) - 전체 시트에서 시트이름으로 검색해서 시트 바로 선택 9

1
2016-05-25 18:46:00 118.♡.255.193
몽치미

20160525183029.jpg

오랜만에 쓸만한? 질문이 올라왔습니다. 여러 거래처를 관리하고 있는 엑셀 시트에서

바로 해당 거래선의 일부 이름으로 검색해서 바로 시트를 선택하고 싶다는 질문이네요.

http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3735375CLIEN

 

함수로서 기능을 잘 사용하시는 분은 함수로 사용하시고 저는 VBA가 편하기 때문에

이것을 도구로 사용해서 사용자 폼을 뛰어서 편리하게 시트를 검색, 선택하게 했습니다.

 

너무 간단해서 설명을 할 내용도 별로 없어 보입니다. 

 

 

Option Explicit

 

우선 사용자 폼을 선택하면 LIST시트를 제외한 모든 시트를 목록에 뿌리는 루틴입니다.

사실 없어도 되는 기능입니다. 어짜피 검색 필드를 통해 검색 목록을 뿌리면 지워지는

항목이므로 ... 그래도 이렇게 전체 시트를 보여줄 수 있다는 기능입니다.

 

Sub View_All_Sht_Name()

 

    Dim sht As Worksheet

 

    Dim sht_name As String

 

    For Each sht In Worksheets

        If sht.Name <> "LIST" Then

            UserForm1.ListBox1.AddItem sht.Name

            

        End If

        

    Next sht

 

End Sub

 

이제 검색할 내용을 입력하고 입력 완료를 위해 오른쪽 화살표나 엔터키를  눌러주세요.

입력은 한글을 기본으로 입력되도록 설정해 두었습니다.

 

Private Sub TextBox1_Change()

    

    Dim sht As Worksheet

    Dim sht_name As String

 

    UserForm1.ListBox1.Clear

 

    For Each sht In Worksheets

        If InStr(1, sht.Name, TextBox1.Text, 1) > 0 Then

            If sht.Name <> "LIST" Then

                UserForm1.ListBox1.AddItem sht.Name

                

            End If

        End If

    Next sht

 

End Sub

 

검색된 시트를 클릭하면 바로 활성화 됩니다.

 

Private Sub ListBox1_Click()

 

    Dim sht As Worksheet

    Dim sel_sht As String

    

    sel_sht = UserForm1.ListBox1.List(UserForm1.ListBox1.ListIndex)

    

    For Each sht In Worksheets

        If sht.Name = sel_sht Then

            sht.Activate

            

        End If

    Next sht

    

End Sub

 

Private Sub UserForm_Initialize()

 

    Call View_All_Sht_Name

 

End Sub

 

개발도구> 디자인모드에서 ActiveX 버튼 하나 만드시고 아래 매크로 연결시켜 주세요.

사용자 폼이 항상 시트 위에 윈도우로 떠 있도록 하는 것인데 검색할 때마다 폼을 

띄우시려면 modalless 제거해 주세요

 

Private Sub CommandButton1_Click()

 

    UserForm1.Show modalless

 

End Sub

 

언제나 처럼 소스는 여기에 올리고 원본 자료는 제 블로그에 올립니다.

http://www.be4u.kr/wp/?p=3322

 

몽치미님의 게시글 댓글
SIGNATURE
하려는 자는 아이디어를 찾고 피하려는 자는 핑계거리를 찾는다.

빈이네 살아가는 이야기 : http://www.be4u.kr/
서명 더 보기 서명 가리기
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [9]
Kanilea
IP 112.♡.64.14
05-25 2016-05-25 19:04:32 / 수정일: 2017-04-30 22:25:57
·
사용자폼이 불편할 경우도 있기 때문에(매크로 만들다 보니 여러 창 뜨는게 불편할 때도 있더군요)
list sheet가 open되면 전체 list를 refresh하여 list sheet에 뿌려주고
검색을 하면(cell change) 해당 문자열이 있는 것만 뿌려주는것도 좋은 방법일 듯 합니다

List시트로 돌아오는것은 잘안쓰는 ctrl+e에 sheets("List") activate 매핑해도 좋을것 같네요
몽치미
IP 116.♡.119.34
05-25 2016-05-25 20:47:26 / 수정일: 2017-04-30 22:25:57
·
그래서 항상 떠 있도록 modalless로 만들어 필요시 바로 검색하도록 했습니다.
늘푸른솔
IP 112.♡.51.45
05-25 2016-05-25 23:54:26 / 수정일: 2017-04-30 22:25:57
·
몽치미님// 모달 아닌 상태로 폼을 나타내는 옵션은 vbModeless 입니다.
nowjigi
IP 14.♡.43.201
05-25 2016-05-25 20:34:30 / 수정일: 2017-04-30 22:25:57
·
언제나 좋은 자료 고맙습니다. 요즘 공부하는데 많이 참고 하고 있습니다 :)
몽치미
IP 116.♡.119.34
05-25 2016-05-25 20:47:48 / 수정일: 2017-04-30 22:25:57
·
공부하시는데 조금이라도 도움이 되었으면 좋겠습니다.
초마짬뽕
IP 203.♡.142.21
05-27 2016-05-27 16:13:04 / 수정일: 2017-04-30 22:25:57
·
죄송한데 저한테 되게 유용할 거 같은데 활용하기가 어려워서 여기 질문을 남겨도 될까요?

작성자님의 블로그에 가서 엑셀파일을 다운 받았는데 그 뒤에 이걸 제가 가진 엑셀 파일에 어떻게 삽입해서 활용해야 할 지 모르겠습니다. Alt+F11 누르니 스크립트가 나오기는 하는데 이걸 제 엑셀파일에서 어떻게 넣어야 할 지 감이 안 와서요.
몽치미
IP 118.♡.255.193
05-27 2016-05-27 16:18:00 / 수정일: 2017-04-30 22:25:57
·
다운받은 제 예제 파일과 기존 쓰시는 파일 여시고 기존 파일의 모든 시트 선택 후
시트탭 위에서 오른쪽 클릭하시고 메뉴의 이동/복사... 폼 뜨면 아래의 복사본 만들기 체크
대상 통합문서 위치를 다운받은 화일 선택하고 확인 누르시면 매크로가 알아서 처리할 것입니다.
잘 사용하세요. 심심하시면 제 블로그 광고 한 번 눌러주시고요 ^^;;;

아참! UserForm1.Show modalless를 UserForm1.Show vbModeless로 바꿔주세요. ㅠㅠ
초마짬뽕
IP 203.♡.142.21
05-27 2016-05-27 17:14:12 / 수정일: 2017-04-30 22:25:57
·
제 엑셀파일에 시트가 22개 정도 있는데 그 중 20개 정도가 표가 있어요.
시트를 모두 복사해서 붙일려고 하는데 표가 포함된 여러 시트는 복사할 수 없습니다 라고 나와서 되지 않네요 ^^

하나 하나 개별적으로 붙일려고 해도 같은 메시지가 뜨면서 복사가 되지가 않아요.
본문에 있는 검색필드를 어떻게 활용할 수 있는 지 확인해봐야겠습니다.

답변 감사합니다 ^^
몽치미
IP 118.♡.255.193
05-27 2016-05-27 17:46:23 / 수정일: 2017-04-30 22:25:57
·
1. 제 파일의 VBA Editor에서 폼을 선택해서 파일 내보내기 합니다.
2. 초마짬뽕님의 엑셀을 여시고 VBA Editor에서 파일 가져오기 합니다.
3. 제 파일의 LIST시트를 초마짬뽕님의 엑셀로 복사하시면 됩니다.
4. 다른 이름저장으로 2007버전의 경우 매크로 사용 통합 문서로 저장하시면 됩니다.

도움이 되었으면 좋겠습니다.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.