출고시트에서 자동필터 복사하여 붙여넣기에 대해 문의드립니다~

VBA
작성자
수메리안
작성일
2023-01-13 17:18
조회
87
엑셀버전 : 엑셀2019

운영체제 : 윈도우10

질문 요약 : 자동필터를 생성하여 필터를 통해 검색된 데이타는 복사하여 다른 시트에 붙여넣기는 되는데 검색된 데이타가 없을 경우 다른 시트에 붙여넣을 경우 모든 데이타가 붙여넣기가 되는 문제입니다.

안녕하세요, 고수님들~^^)/

오빠두엑셀에서 공부하여 회사업무에 무궁무진하게 활용하고 있습니다.

이번에는 출고시트에서 각 가맹점별로 주문목록을 취합하는 작업을 하고 있습니다.

위 출고시트에서 주문리스트를 2단계로 추출하여 각 가맹점별로 붙여넣기를 합니다.

1단계는 헬로미트를 찾고 품목에서 벌집껍데기와 돼지왕구이를 찾아서 주문목록을 복사하여 헬로미트주문집계로 복사하여 붙여넣습니다.

Sub 주문집계()

'//가맹점별 주문집계

Dim OutPutSt As Worksheet
Dim HelloSt As Worksheet
Dim OutEndrow As Integer
Dim HelloEndrow As Integer
Dim rngF As Range
Dim i As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Set OutPutSt = ThisWorkbook.Worksheets("출고")
Set HelloSt = ThisWorkbook.Worksheets("헬로미트주문집계")
OutEndrow = OutPutSt.Cells(Rows.Count, "A").End(xlUp).Row '출고 마지막행

OutPutSt.Activate

Set rngF = OutPutSt.Range("B2:B" & OutEndrow).Find("63050", , , LookAt:=xlWhole)

If Not rngF Is Nothing Then

Range("A1").Select
Selection.AutoFilter

FilterPrd = Array("p3001-1a", "u3003a")
ActiveSheet.Range("$A$2:$Q$" & OutEndrow).AutoFilter Field:=4, Criteria1:=FilterPrd, Operator:=xlFilterValues

Filterhello = Array("63050")
ActiveSheet.Range("$A$2:$Q$" & OutEndrow).AutoFilter Field:=2, Criteria1:=Filterhello

Rows("2" & ":" & OutEndrow).Select
Selection.Copy

HelloSt.Activate
HelloEndrow = HelloSt.Cells(Rows.Count, "A").End(xlUp).Row '헬로미트주문집계 마지막행
HelloSt.Range("A" & HelloEndrow + 1).PasteSpecial xlPasteAll '헬로미트주문집계에 붙이기

OutPutSt.Activate

If ActiveSheet.AutoFilterMode Then
ActiveSheet.UsedRange.AutoFilter '(영역을 지정하지 않고도) 현재시트내의 필터 해제함
End If
Else
End If
End Sub

잘 작동하는데, 문제는 주문목록이 없을 경우에 모든 주문목록이 다 복사가 됩니다.
Rows("2" & ":" & OutEndrow).Select
Selection.Copy
이 부분이 문제일 거 같은데 좋은 방법을 구하고 있습니다.
고수님들의 도움을 요청드립니다.

감사합니다^^

 

스크랩
공유
전체 6

  • 2023-01-13 19:51
    채택된 답변

    @수메리안 님 제목줄부터 마지막줄까지 Visible Cell 을 카운트해서 1이면 제목줄만 있는 것으로 알 수 있지 않을까요?


    • 2023-01-16 10:39

      @원조백수 님 넘 좋은 아이디어를 주셔서 잘 해결했습니다~^^
      감사합니다~
      새해 복 많이 받으세요^^)/


  • 2023-01-16 16:34

    @수메리안 님 첨부 VBA 활용해 보세요.