조삿갓 Sub 입고()
Dim cnt As Integer
If Sheets("목록관리").Range("A7") = 1 Then
cnt = Sheets("DATA").Range("A1").CurrentRegion.Rows.Count + 1 '번호매기기
....
MsgBox "입고완료"
Else
MsgBox "버튼 조작 오류"
End If
End Sub 04-25 (13:35) ⓧ 삭제 ■신고
조삿갓 다른 프로시저들도 비슷하게 구성하면 됩니다.
조건문의 비교 값을 2, 3 등으로 수정하면 되겠지요.
그런데 말입니다....?
입력하는 사용자 입장에서는 좀 짜증나는 프로그램일 것 같은데요?
코드도 비효율적이고요.
그보다는
MAIN 시트에 있는 양식콘트롤 대신 각 셀에 직접적으로 데이터유효성검사를 적용하면 동일한 효과에 직접 해당 셀에 값이 입력되므로, 보기도 편하고 프로그래밍도 편하게 될 것입니다.
그리고 버튼을 3개 따로 만드는 것보다는
[기록] 이라는 버튼 하나만 만들어서
D4 셀에 입력된 내용에 따라 각각, 입고, 출고, 폐기를 처리하도록 하는 것이
프로그램 코드도 효율적이 되고
사용자 입장에서도 더 간편고 예쁜 프로그램일 것 같습니다만...
04-25 (13:39) ⓧ 삭제 ■신고
조삿갓 양식 콘트롤에 매크로를 지정할 경우 하나의 콘트롤에는 하나의 프로시저만 연결할 수 있습니다. 증가와 감소를 따로 따로 프로시저를 구성하면 안됩니다. 또, 스핀단추의 경우 굳이 그럴 필요가 없습니다. 스핀단추 자체가 증가와 감소 기능을 가지고 있기 때문이죠. 값이 증가하거나 감소하는 것과 동시에 또 다른 어떤 조작을 할 필요가 있을 때에만 매크로를 연결해서 쓰면 됩니다.
다만, VB 사용자정의폼의 스핀단추 컨트롤과 달리
워크시트에 삽입하는 양식컨트롤로서의 스핀단추는 두가지 아주 불편한 제약이 있습니다.
1) 최소값은 0 이상이어야 함(음수를 쓸 수 없음)
2) 최대값은 30000 이하여야 함(그 이상의 값은 불가) 04-25 (13:52) ⓧ 삭제 ■신고
조삿갓 만일, 제약 2)만 아니라면 단지 날짜를 표출할 A1 셀 자체를 스핀단추에 연결해 놓는 것만으로도, 이 스핀단추로 임의 날짜를 쉽게 조정할 수 있습니다.
그러데 불행하게도, 요즘의 날짜 일련번호는 40000을 훌쩍 넘고 있습니다.
그래서 스핀단추로 직접 조정이 가능한 최대 날짜가 1982-2-18이고, 그 제약 때문에 말씀하신 버그가 일어나는 것이지요.
가장 쉬운 해결 방법은, 스핀단추에 연결하는 셀을 $D$1으로 설정하고, A1 셀에는
=D1+40000
이라고 수식을 입력하면 간단히 해결될 것입니다. 물론 입력 허용 날짜 범위에 따라 더해주는 수치 값이나 스핀단추의 초기값을 적당히 알아서 조정해 주시면 됩니다.
매크로 연결은 필요 없으니까 삭제하시고요. 04-25 (13:58) ⓧ 삭제 ■신고
차알돌이 매번 감사합니다
가르쳐 주심으로 업무효율성이 많이 올라가고 있습니다 04-25 (14:31) ⓧ 삭제 ■신고
차알돌이 아 그렇게 하면 입력행을 여러개 만들어서 단체로 입력할 수 있는거군요 한번 시도해 보겠습니다. 이게 된다면 또 하나의 고민이 해결됩니다 04-25 (15:19) ⓧ 삭제 ■신고