|
* 아래줄에 질문을 작성하세요 >>
안녕하십니까? 수고하십니다.
항상 모르는건 여기에서 고수님들의 도움을 받습니다. 감사드립니다.
고객사별 납품관리를 하고 있는데 발주수량 대비 잔량이 남은 품목들만 정리가 되도록 하고싶은데 도움요청드립니다.
==============[애니킴님 글에 대한 답변입니다]==============
저번에 질문하신 거랑 시트 이름만 바뀌었을 뿐 완전히 똑 같은 거네요.
http://www.officetutor.co.kr/board/Dtype/bfrmvw.asp?f_tn=Dqa_excel_n2&f_bno=123234&page=
이곳은 답변내용을 토대로 본인이 분석하고 공부해서
입맛에 맞게 수정하여 사용하는 곳이지
(또 그런 과정을 통해 실력을 쌓을 수 있습니다)
원하는 결과물을 꼭 집어서 공짜로 얻어 쓰는 곳은 아닙니다.
답변 내용 중에 궁금한 사항이나
어려운 함수의 적용(응용) 방법
또는 답변 오류(버그) 등은
추가 댓글을 통해 다시 질문하고 토론하는 것이 좋습니다.
----------------------------------------------
아마도 시트 이름이 바뀌거나 추가되는 경우에
수식을 적용하시는 것을 힘들어 하시는 것으로 짐작되아서
시트 이름이 바뀌는 경우에도 쉽게 적응할 수 있도록
조금 수정하여 다시 답변드립니다.
즉, 데이터 시트의 이름이 바뀌거나 추가되는 경우
O열에만 시트 이름을 열거해 주고
(이번 버전은 오른쪽 끝에 느낌표를 안 붙여도 됩니다.)
A~K의 데이터 영역은 필요한 잔량 품목만큼 아래로 수식 복사
L~M열의 시트 참조 수식은 시트 개수보다 하나 더 많은 곳까지
아래로 수식 복사해서 사용하시면 됩니다.
물론 각 데이터 시트의 I열도 데이터 개수만큼 아래로 수식 복사하면 됩니다.
-----------------------------------------------
아울러, 질문을 통해 독학하시는데 도움이 될 수 있는
분석 팁을 그림으로 알려드립니다.
첨부파일에 별도 시트로 작성해 두었으니 참고하시기 바랍니다.
-----------------------------------------------
물론 원하는 기능을 VB로 작성할 수도 있지만,
언어 코딩의 경우 내장함수보다도 더 많은 기초지식과 내공을 필요로 합니다
가능한 한 내장 함수를 응용해 보는 것이 좋습니다.
그래도 굳이 VB를 원하신다면 다음 코드를 사용해 보시기 바랍니다
Sub 납품잔량관리()
Const cr = 7
Dim sh As Integer
Dim sc As Integer
Dim rs As Long
Dim rd As Long
Dim c As Long
sc = ThisWorkbook.Sheets.Count - 1
Worksheets("일정").Activate
With ActiveSheet.UsedRange
rd = .Rows.Count
c = .Columns.Count
End With
Range(Cells(2, 1), Cells(rd, c)).ClearContents
rd = 2
For sh = 1 To sc
With Worksheets(sh)
rs = 2
Do Until .Cells(rs, 1) = Empty
If .Cells(rs, cr) > 0 Then
For c = 1 To 8
Cells(rd, c) = .Cells(rs, c)
Next c
rd = rd + 1
End If
rs = rs + 1
Loop
End With
Next sh
End Sub
통합하는 시트는 맨마지막 시트여야 하고
그 마지막시트를 제외한 모든 시트가
통합할 데이터를 갖고 있는 대상 시트라고 가정한 것입니다.
그 외의 조건이 있다면
위 코드를 잘 분석해서 응용하시기 바랍니다.
코드 분석 역시 궁금한 함수나 명령어 부분에 커서를 찍고
F1 키를 누르면 온라인 도움말을 볼 수 있습니다.
==============[조삿갓님 글에 대한 답변입니다]==============
지도 말씀과 자세한 설명감사드립니다.
|
|