본문 바로가기
IT 전산/엑셀

엑셀 VBA로 제품명 검색 후 시트이동 및 필터처리 하

by 멍뭉부 2023. 11. 14.
반응형

하기 사진과 같은 Sheet2 에서 제품명을 클릭한 이후 검색 단추를 누르면 Sheet1 (제품명) 시트로 이동하고 필터처리까지 하는 VBA 매크로 입니다.

 

 

1. VBA 창에 가서 검색 및 필터의 SUB를 생성해줍니다.

(시트 명은 자신에게 맞도록 설정)

Sub SearchAndFilter()
    Dim searchSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim searchRange As Range
    Dim foundCell As Range
    Dim productName As String

    ' 시트 설정
    Set searchSheet = ThisWorkbook.Sheets("Sheet2")
    Set targetSheet = ThisWorkbook.Sheets("제품명")
    
    ' 시트2를 활성화하고 선택된 셀의 제품명 가져오기
    searchSheet.Activate
    If TypeName(Selection) <> "Range" Then
        MsgBox "셀이 선택되지 않았습니다.", vbExclamation, "오류"
        Exit Sub
    End If
    productName = Selection.Value

    ' 시트1에서 제품명 검색 범위 설정
    Set searchRange = targetSheet.Columns("A:A")

    ' 시트1에서 제품명 찾기
    Set foundCell = searchRange.Find(What:=productName, LookIn:=xlValues, LookAt:=xlWhole)

    If Not foundCell Is Nothing Then
    ' 찾은 셀로 이동
    targetSheet.Activate
    foundCell.Select
    
    ' 필터링을 위한 자동 필터 설정
    If targetSheet.AutoFilterMode Then
        targetSheet.AutoFilter.ShowAllData
    End If
    
    ' AutoFilter 적용 범위가 정확한지 확인
    Dim filterRange As Range
    Set filterRange = targetSheet.Range("A1:A" & targetSheet.Cells(targetSheet.Rows.Count, 1).End(xlUp).Row)

    filterRange.AutoFilter Field:=1, Criteria1:=productName
Else
    MsgBox productName & " 제품을 찾을 수 없습니다.", vbExclamation, "검색 결과"
End If
End Sub

 


2. 검색버튼에 대해 원클릭 이벤트 생성후 해당 SUB를 불러와서 처리하도록 합니다.

Sub 사각형둥근모서리1_Click()

Call SearchAndFilter

End Sub

 

 

예제 파일  다운

통합 문서1.xlsm
0.02MB

 

반응형