내일도 화이팅

입출고 시 중복 업로드 방지-코드제공, 파일제공(복붙용) 본문

엑셀/엑셀 매크로 사무자동화 코드

입출고 시 중복 업로드 방지-코드제공, 파일제공(복붙용)

내일도화이팅 2023. 7. 22. 23:26

재고관리프로그램-Ver.3.xlsm
0.04MB

※ 코드와 파일은 상업적 이용, 개인적 이용이 모두 가능합니다. 다만, 블로그나 게시판 업로드 목적이라면 출처를 꼭 남겨주세요.

 

해당 프로그램을 사용하다보면, 실수로 두 세번 누르거나, 견적서를 바꾸지않은채로 한번 더 클릭할 때가 있습니다.

 

그럴때 밑에까지 스크롤을 내리며 내가 잘못 입력했던 전표가 맞는지 확인하고 delete해야합니다.

 

그런데, 차라리 넣은 바로 직후 잘못된걸 깨달으면 그나마 지우기 쉽겠지만, 혹시라도 중간에 중복데이터가 섞여들어갔다면 일일히 확인하고 찾아내야되는데, 이게 보통일이 아니죠..

 

그래서 중복 확인을 하고 중복된 견적서를 업로드하려고하면 이를 억제하여 업로드를 못하도록 업그레이드하였습니다.

중복 확인을 하는 가장 좋은 방법은 거래마다 넘버를 부여하고 해당 넘버가 이미 존재한다면 중복에 대한 경고를 띄우는 겁니다. 때문에 이번 파일은 저번에 입력한 매크로 입고견적서입력과 출고견적서입력도 수정을 하였으니 참고 부탁드립니다.

 

1. 입고견적서입력 코드

Sub 입고견적서입력()
    Dim data As Integer
    Dim Transcation As Integer
    Dim overlap As Boolean
    
    overlap = 중복확인("입고")
    
    If (Not overlap) Then
        '입고시트 몇번째 셀부터 데이터를 넣을 수 있는지 확인
        data = 3
        Do While (Not IsEmpty(Cells(data, "B").Value))
            data = data + 1
        Loop
        
        '입고견적서의 데이터가 몇개인지 확인
        Transcation = 3
        Do While (Not IsEmpty(Worksheets("입고견적서").Cells(Transcation, 2).Value))
            Transcation = Transcation + 1
        Loop
        Range("C" & Trim(Str(data) & ":F" & Trim(Str(data + Transcation - 4)))).Value = Worksheets("입고견적서").Range("B3:E" & Trim(Str(Transcation - 1))).Value
        Range("B" & Trim(Str(data) & ":B" & Trim(Str(data + Transcation - 4)))).Value = Worksheets("입고견적서").Cells(3, 7).Value
        
        
        ' 재고갱신
        Call 입고재고갱신
    End If
End Sub​

 

2. 출고견적서입력 코드

Sub 출고견적서입력()
    Dim data As Integer
    Dim Transcation As Integer
    Dim overlap As Boolean
    
    overlap = 중복확인("출고")
    
    If (Not overlap) Then
        '출고시트 몇번째 셀부터 데이터를 넣을 수 있는지 확인
        data = 3
        Do While (Not IsEmpty(Cells(data, "B").Value))
            data = data + 1
        Loop
        
        '출고견적서의 데이터가 몇개인지 확인
        Transcation = 3
        Do While (Not IsEmpty(Worksheets("출고견적서").Cells(Transcation, 2).Value))
            Transcation = Transcation + 1
        Loop
        Range("C" & Trim(Str(data) & ":F" & Trim(Str(data + Transcation - 4)))).Value = Worksheets("출고견적서").Range("B3:E" & Trim(Str(Transcation - 1))).Value
        Range("B" & Trim(Str(data) & ":B" & Trim(Str(data + Transcation - 4)))).Value = Worksheets("출고견적서").Cells(3, 7).Value
        
        
        ' 재고갱신
        Call 출고재고갱신
    
    End If
End Sub

 

3. 중복확인 코드

Function 중복확인(ttype As String)
    Dim overlap As Boolean
    Dim i As Integer
    Dim msg As Integer
    i = 3

    overlap = False
    
    Do While (Not IsEmpty(Worksheets(ttype).Cells(i, 2).Value))
        If (Worksheets(ttype).Cells(i, 2).Value Like Worksheets(ttype & "견적서").Cells(3, 7).Value) Then
            overlap = True
            msg = MsgBox("이미 등록된 견적서입니다", vbYesOnly, "중복경고")
            Exit Do
        End If
        i = i + 1
     Loop
중복확인 = overlap

End Function

 

조금 많이 수정되었죠? 입출고 견적서의 중복을 확인하는 가장 좋은 방법은 입출고 견적서마다 개별적으로 유니크한 유일키를 갖고있는 것입니다.

 

자세한 설명은 아래 코드설명에서 드리겠습니다. 오늘도 감사합니다.

 

https://ksm30546.tistory.com/18

 

입출고 시 중복 업로드 억제 - 코드 분석

안녕하세요. 오늘은 입출고 업로드 시 중복 업로드 되는 것 방지하기 위한 VBA 코드와 원리에 대해서 알아보겠습니다. 먼저, 코드와 파일을 제공했던 게시글 링크입니다. https://ksm30546.tistory.com/17

ksm30546.tistory.com