1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

재고 입고월 분석(vba)

VBA .Find 조회 수 7984 추천 수 0 2009.07.24 09:38:18

안녕하세요 처음 글을 올려 봅니다.

제가 다니는 회사가 패션회사라 재고에 대한 분석이 철저히 이뤄져야 합니다.
그래서  현재 남아 있는 재고에 대한 입고월을 분석하려고 합니다.

매크로로 짜 봤는데 잘 되지 않아서 고수님의 지도부탁드립니다.

 

[재고현황 (12월 31일)]
(품번) (재고수량) 
aa 20 

 

출고가 선입선출법이라고 가정한다면 재고는 가장 나중에 들어온 것 들로 구성되므로


[입고현황 1월 ~ 12월 -> 입고역순으로 정렬된 데이타 ]
(품번) (입고일자) (입고수량) (역산한 재고의 입고월)
aa 2001-12-31     10       10
aa 2001-01-12       5        5
aa 2001-01-07      30        5  (30개중  25개는 출고되고 5개는 재고로 남음)
aa 2001-01-02      20        -  (재고 20개를 초과하므로 계산에서 제외)

 

파일 첨부하였습니다.

 

저에게 굉장히 중요한 건데 해결할 능력이 않되네요..


댓글 '3'

profile

[레벨:30]아별

2009.07.25 15:18:36
*.130.73.19

기본 컨셉은 이렇습니다.

 

▲기본전제..

데이터는 입고 날짜 순으로 정렬되어 있다. 선입선출이다.

 

▲해결 방법..

입고현황 시트의 A열(품목)을 선택하고, 맨 아래쪽 레코드를 activate하지요..

    Columns("A:A").Select
    Range("A65536").Activate

선택영역에서 aa품목을 거꾸로 거슬로 올라가면서 찾습니다.

    Selection.Find(What:="aa", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase _
        :=False, MatchByte:=False, SearchFormat:=False).Activate
만약 선택 품목의 오른쪽 2번째 셀인 입고수량이 20개보다 크다면, 예를 들면 30개면 재고수량에 20을 넣고 프로그램 종료시킵니다. 선입선출이라고 하셨으니까.. 가장 최근에 입고되니 수량이 기말 재고 보다 작으면 가장 최근에 입고된것 중 일부가 남은거라고 볼 수 있겠죠..

그리고 만약..  20개보다 작다면 예를 들면 15개면 오른쪽 3번째 셀의 재고 수량에는 15을 넣은 다음, 기준 정보인 20은 20-15인 5로 변경하고.. 다시 aa품목을 거슬러 올라가면서 찾습니다. 그 라인의 입고 수량이 새로운 기준인 5보다 작은지 큰지 보고.. 작으면 해당 입고분만큼 재고수량에 넣고 다시 위로.. 처음으로 갈때까지!

    Selection.FindPrevious(After:=ActiveCell).Activate

 

머.. 기본 컨셉이 그렇습니다. 잡다한 에러처리도 필요하겠지요..

이정도로 만족하실지 모르겠네요.. 제가 주말에 어딜 가봐야해서.. 일단 이정도로 팁을 드립니다.

 

현재까지 만든 파일을 참조하세요.. abyul_20090725_vba.xls

 

Option Explicit

Sub checkProduct()
    Dim cntClosing As Integer
    Dim endPosition As Range
    cntClosing = Application.InputBox("aa 품목의 기말 재고 수량을 입력하세요", Title:="기말재고 수량 입력창", Type:=2)
   
   
    Columns("A:A").Select
    Range("A65536").Activate
    Selection.Find(What:="aa", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase _
        :=False, MatchByte:=False, SearchFormat:=False).Activate
    Set endPosition = ActiveCell

    Do
            If ActiveCell.Offset(0, 2).Value >= cntClosing Then
            ActiveCell.Offset(0, 3).Value = cntClosing
            End
        ElseIf ActiveCell.Offset(0, 2).Value < cntClosing Then
            ActiveCell.Offset(0, 3).Value = ActiveCell.Offset(0, 2).Value
            cntClosing = cntClosing - ActiveCell.Offset(0, 2).Value
        End If
        Selection.FindPrevious(After:=ActiveCell).Activate
        If ActiveCell.Address = endPosition.Address Then
            End
        End If
    Loop
End Sub

 

 

좋은 결과 있으시길 바래요.. ^^)/

첨부

[레벨:1]럽웨어

2009.07.26 14:07:35
*.123.2.253

정말 감사합니다.  정말 신이라는 별명에 손색이 없으십니다... 제가 원하는대로 일부 편집했더니 일괄처리까지 가능하게 되었습니다.

 

감사합니다.

 

profile

[레벨:30]아별

2009.07.27 18:07:27
*.130.73.19

원하시는 결과를 얻으셨다니 정말 다행입니다. ^^

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 46175
762 피벗테이블 월별 합계 금액 구하는 법 file [1] 야옹이 2010-02-12 7901
761 엑셀일반 [긴급문의] 엑셀의 특정셀의 값들이 사라집니다. [1] [레벨:1]용님 2015-09-02 7885
760 VBA 셀에 맞춰 그림 삽입하기 [1] [레벨:5]눈물바다 2012-06-05 7837
759 엑셀에서 어떤셀값의 중간부분만 봐서 중간값에 따라 앞셀의 값이 변하게 하려면 [5] 마음의눈 2010-02-01 7759
758 파워포인트연계 엑셀과 파워포인트 _ ppt 연계 자동 업데이트 [3] [레벨:5]눈물바다 2012-07-02 7745
757 타입별 불량율 순위 정리 file [7] 웁쓰캬캬 2010-05-06 7676
756 VBA 파일&폴더 파일 만들기 _ 파일 생성, 폴더 생성, 파일 존재하는지 여부 확인 등 [4] [레벨:3]엑셀대단해 2012-08-15 7660
755 VBA 사용자 정의 함수에서 변수의 행번호 추출하기 file [레벨:1]백미90 2015-08-17 7561
754 엑셀일반 웹 쿼리 관련한 질문입니다 [1] [레벨:1]달빛아래말할게 2015-04-20 7522
753 특정셀 클릭시 다른시트로 이동 과 동시에 값변하게....... file [2] [레벨:1]호두인형 2010-06-14 7519
752 이미지 투표방법 문의드립니다. _ 엑셀로 설문조사해서 쉽게 취합하기 file [1] 강기욱 2010-03-24 7515
751 엑셀 통계표 작성시 함수 좀.... (2가지 조건 이상을 만족하는 데이터의 카운팅 방법) file [4] [레벨:1]칠보산 2009-07-02 7498
750 4사분면으로 나타내는 방법 imagefile [1] [레벨:1]rush 2009-11-05 7463
749 셀 서식에서 원하는 서식으로 고정하기 [3] [레벨:1]kwihan 2009-07-02 7442
748 엑셀수식 색칠한 셀 개수 세기와 "←" 가 있는 셀 수 세기 file [4] [레벨:4]성투은자 2013-04-05 7419
747 조건부서식에서 값반환이 안되네요..ㅠㅠ [1] 이은희 2010-05-11 7364
746 엑셀수식 하이퍼링크 함수 로케이션의 파일을 자동으로 채우기 [1] [레벨:1]게런티 2015-07-10 7209
745 석차 등급을 구하는데요 file [레벨:4]쟈니 2010-05-31 7201
744 엑셀 질문드립니다. - 셀내용에서 한글은 모두 제거하는 방법- file [6] 동동이 2009-12-29 7179
743 VBA .Find ListBox1 에 추가가 되지를 않습니다. file [3] [레벨:1]사오정원조 2009-07-03 7090