[Excel] 3. 능력있는 직장인이 되는 법. 물품 입고시키기!

in #kr-newbie6 years ago (edited)

안녕하세요! @gbgg 입니다. 능력있는 직장인이 되는법! 엑셀 자동화 강의 세번째입니다!~!~!

엑셀로 일 편하게 하는 방법을 여러 차례에 걸쳐 포스팅해보고자 합니다.

이번 포스팅에서는 사무일을 볼 때 뭐 비품이라던지 물건들이라던지

이런것들이 언제 입고가 되고 수량은 몇개인지 기록할 일이 많이 생기더라구요!

그럴 때 미리 지정해둔 양식에 맞춰 클릭만으로 기록할 수 있으면 몹시 편할겁니다!

오늘 구현할 기능은 다음과 같습니다.!

  • 입고된 물품종류 선택하기
  • 입고된 물품 이름 선택하기
  • 버튼 입력하면 날짜, 종류, 이름, 수량을 옆 시트에 순서대로 기록하기

지난 포스팅에서 했던 버튼이나 모듈생성 같은 부분은 짧게 넘어갈게요!

맨 밑에 지난 포스팅 링크 걸어놓겠습니다~!


기본 셋팅

다음과 같은 엑셀파일 A를 새로 만든 뒤 아래의 그림처럼 꾸밉니다.
(색깔은 안따라하셔도 됩니다 ㅎㅎ)

자 오늘은 새로운게 추가되었네요! 바로 콤보상자 입니다.

콤보상자는 미리 설정해둔 값을 클릭해서 사용할 수 있는 일종의 선택박스? 입니다.

버튼 오른쪽에 있는 콤보상자(양식 컨트롤)을 누르시면 쉽게 생성하실 수 있습니다!

자 이제 콤보상자에 값을 넣어보겠습니다. I , J열에 있는 값을 참조해볼게요!

이렇게 콤보박스 오른쪽에 대고 컨트롤 서식을 눌러주세요.

아래 그림처럼 입력범위와 셀 연결 이라는 항목이 있습니다.

간단히 설명드리자면 입력 범위는 콤보박스에 넣을 값? 들이고

셀 연결은 그 콤보박스에서 값을 선택했을 때 어떤것을 선택했는지 표시해주는 기능입니다.

아래 그림과 같이 입력범위를 누르시고 I3 부터 I7까지 드래그해서 범위지정 해보겠습니다.

셀 연결은 I8로 선택하시면 됩니다. 우선 진행한 후에 설명드릴게요!

다음과 같이 연결되셨다면 물품 이름도 똑같이 연결해 보도록 하겠습니다.

자 잘 따라오셨나요? 성공적으로 연결했다면 다음과 같이 콤보박스를 클릭하면

오른쪽에 있는 물품종류가 뜨게 됩니다.

한번 입고와 제품A를 클릭해볼까요?

자 다음과같이 셀 연결된 부분에 숫자 1과 숫자 2가 뜨는걸 확인할 수 있습니다.

우리는 이제 콤보박스가 어떤 값을 선택했는지 알 수 있게 되었습니다!

이제 그 번호에 맞게 값을 표시해주면 되겠죠?

인덱스(INDEX) 함수를 써보도록 하겠습니다.

  • =INDEX(찾을 범위, 찾을 값 번호)

라고 이해하시면 될 것 같습니다.

이렇게 I9셀에 함수를 써서 표시되도록 해보겠습니다.

자 이 과정을 무사히 마쳤다면 다음과 같이 무엇을 선택했는지 표시되게 됩니다.

이걸 이제 버튼클릭하면 옆 시트에 기록될 수 있게 능력?을 부여해야겠죠?

다음으로 넘어갑시다!

코드생성

모듈을 생성합니다. (이전 포스팅에 설명이 자세히 나와있습니다.)

아래 코드를 입력해줍시다.

Sub 입출고()

Dim cnt As Integer

cnt = Sheets("sheet2").Range("A1").CurrentRegion.Rows.Count + 1

Sheets("sheet2").Cells(cnt, 1) = Val(Sheets("sheet2").Cells(cnt - 1, 1)) + 1
Sheets("sheet2").Cells(cnt, 2) = Sheets("sheet1").Range("c4").Value                '날짜
Sheets("sheet2").Cells(cnt, 3) = Sheets("sheet1").Range("I9").Value                '물품종류
Sheets("sheet2").Cells(cnt, 4) = Sheets("sheet1").Range("j9").Value                '물품이름
Sheets("sheet2").Cells(cnt, 5) = Sheets("sheet1").Range("f4").Value                '수량

MsgBox "입고완료"

End Sub

위 코드를 아래 그림과 같이 붙여넣으시면 됩니다.

버튼에 능력 부여하기

코드를 다 입력하셨다면 다음과 같이 버튼에 능력을 부여해줍시다!

결과

자 버튼을 눌러보겠습니다! 두구두구두구

입고 완료라는 메세지가 뜨면서 성공적으로 값이 전달된 것을 확인할 수 있습니다.

자 그러면 sheet2도 확인해볼까요? 시트 2를 눌러봅시다!

위에 보시다시피 sheet2에 넘버, 입출고시간, 물품종류, 물품이름, 수량 값이 제대로 전달된 것을

확인할 수 있습니다.

그렇다면 버튼을 계속 눌렀을 때 아래쪽에 기록이 되어야 하는데요.

값을 바꿔가며 버튼을 5번정도 눌러보겠습니다.

자 이렇게 차곡차곡 데이터가 쌓이는 것을 확인하실 수 있습니다.

간단하게 버튼 클릭만으로 선택한 데이터가 쌓이도록 구현해보았는데요!

업무 하면서 무수히 반복되는 작업들을 이렇게 간편하게 마치 프로그램인것 처럼

간단하게 자동화 시킬 수 있습니다.

이렇게 규칙적으로 쌓인 데이터는 통계를 낸다던지 하루 입출고량을

체크한다던지 할 때 굉장히 편하게 체크해 볼 수 있습니다.

코드분석


cnt = Sheets("sheet2").Range("A1").CurrentRegion.Rows.Count + 1

Sheets("sheet2").Cells(cnt, 1) = Val(Sheets("sheet2").Cells(cnt - 1, 1)) + 1

오늘 중요한 부분은 이 부분인데요. 데이터가 차곡차곡 쌓이게 하기 위해서

번호를 찾아내는 코드입니다.

Sheets("sheet2").Range("A1").CurrentRegion.Rows.Count + 1

이 부분은 sheet2의 A1 전체 열에서 데이터가 있는 제일 마지막 값을 체크하는것인데요,

번호가 매겨진 다음 셀에 값을 넣기 위해 cnt값에 +1을 해주었습니다.

Sheets("sheet2").Cells(cnt, 1) = Val(Sheets("sheet2").Cells(cnt - 1, 1)) + 1

이 부분에서 살펴볼 부분은 Val(Sheets("sheet2").Cells(cnt - 1, 1)) + 1 바로 이 부분인데요!

바로 윗 칸의 번호 값을 참조하기 위해 cnt - 1을 하여 그 위치의 값을 읽고

그 값을 기준으로 + 1 하여 번호가 순서대로 1 2 3 4 5 6 처럼 매겨지게 구현해 놓은 부분입니다.

엑셀 자동화

이번 포스팅에서는 미리 셋팅해논 값을 선택하여 버튼을 누르면

그 값을 순차적으로 기록하는 방법을 설명해드렸는데요!

사람이 손으로 일일히 기록해야 하는 부분을 이렇게 간편하게 할 수 있을 뿐만 아니라

쌓인 데이터를 분석해서 결과보고서 같은 곳에 활용할 수 있습니다.

다음시간에는 앞서 배웠던 것들을 조합해서 실제 작업에 쓸 수 있도록 구현해보고자 합니다.

능력있는 직장인이 되기 위해 엑셀로 전산프로그램을 만들 때 까지 한번 열심히 달려봅시다!

다음 포스팅에서 뵙겠습니다!


지난 포스팅

[Excel] 1. 능력있는 직장인이 되는 법. 엑셀 자동화란?

[Excel] 2. 능력있는 직장인이 되는 법. 다른 파일 불러오기!


[Ourselves 캠페인]
셀프보팅을 하지 않고 글을 올리시고
ourselves 태그를 달아 주시면
어떤 일이 일어날까요?
긴 젓가락으로 서로 먹여주는 천국이 이뤄지지 않을까요?

<= 함께 하실 분은 위 문장을 글 하단에 꼭 넣어주세요~

Sort:  

우와 꿀팁 정말 감사합니다! 꼭필요한 정보 샥샥 나눠주셔서 정말 큰 도움이됩니다:)

도움이 되셨다니 감사합니다 ^_^ 앞으로도 필요한 정보 샥샥 드릴게요ㅋㅋㅋ

오오 이거 엄청 유익해요! 엑셀로 이런 기능은 누가 만든것만 써봤어요ㅠ저 코드를 직접 짜는법을 배우고싶은데 역시 코드는 보면 머리가 어찔어찔 합니다 ㅠ

넵! 정말 유용합니다 ㅋㅋㅋ 쓰면서도 코드부분 햇갈려하실 분들이 많을것같아서 최대한 쉽게 쓰려고 하는데 글재주가 없어서그런지 어렵네요 ㅠ_ㅠ

이거 제가 찾던거인데... 요새 엑셀떄문에 너무 골치아픈데 gbgg 님 글 다 너무 좋아요!!

연말 인사드리러 왔습니다. 새해복 많이 받으세용~~

myfan님도 연말 잘 보내시고 새해복 많이 받으세요! ><
포스팅 좋게 봐주셔서 정말 감사합니다 !

Coin Marketplace

STEEM 0.20
TRX 0.12
JST 0.029
BTC 60320.14
ETH 3373.37
USDT 1.00
SBD 2.51