나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 차알돌이 (chll33)

추천:  2
파일:     입출고[2].xlsm (31.4KB) 조회:  3046
제목:   [RE]셀 내용과 버튼이 일치되었을 때 입력
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):2010

* 아래줄에 질문을 작성하세요 >>
1. 셀에 있는 내용과 버튼이름이 일치되었을 때 입력이 되게 할 수 없나요
   입력에러를 줄이기 위해서 입니다.
2. 날짜버튼에서 증가는 하나씩 잘되는데 감소는 1982년2월18일로 되돌아 옵니다.
==============[차알돌이님 글에 대한 답변입니다]==============
파일첨부 안해서 첨부합니다
 
[불량 게시물 신고]  
조삿갓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)
삭제 ■신고
        
  

작성일 : 2018-04-25(12:21)
최종수정일 : 2018-04-25(12:21)
 


 ◎ 관련글

  제 목   작성자   날짜
셀 내용과 버튼이 일치되었을 때 입력 차알돌이 2018-04-25
[RE]셀 내용과 버튼이 일치되었을 때 입력 차알돌이 2018-04-25
[RE] 효율성 제안 조삿갓 2018-04-25
[RE] 효율성 제안 차알돌이 2018-04-26
[RE] 반복구문을 사용하셔야 합니다. 조삿갓 2018-04-30