유저폼 텍스트박스에서 바코드기로 QR 인식 할때 문자 짤림 현상 해결방법
VBA
작성자
상큼애플
작성일
2023-11-16 11:44
조회
124
안녕하세요. VBA에서 물품 재고 관리를 위해
물품별로 고유번호를 QR 코드로 뽑아서 물품에 부착하고,
보관장소 이동시 보관장소와 고유번호를 바코드로 QR찍어서 기록 하도록 하려고 VBA 만들던 도중 막혀서 글 올립니다.
바코드로 QR코드를 인식하면 텍스트박스에서 첫글자만 읽고 매크로가 실행되는 현상이 발생합니다.
제가 생각 한데로 잘 안되네요ㅠ 고수님들의 도움 받고자 합니다.
도움 부탁드립니다.ㅠ
Private Sub TextBox1_Change() Static x As Integer Static y As Integer Dim xval As String Dim yval As String Dim a As String: Dim b As Integer: Dim f As Range: Dim i As Integer MsgBox TextBox1.Value If Len(TextBox1.Value) <> 4 And Len(TextBox1.Value) <> 15 Then Exit Sub If Len(TextBox1.Value) = 4 Then '보관위치는 4자리 (예시: 201A) xval = TextBox1.Value x = 23 '목록중 보관위치의 열번호 ElseIf Len(TextBox1.Value) = 15 Then '물품의 고유번호 15자리 (예시:ABC123231116934) yval = TextBox1.Value With ActiveSheet.UsedRange Set f = .Find(what:=yval, LookIn:=xlValues, lookat:=xlWhole) If Not f Is Nothing Then a = f.Address Do Set f = .FindNext(f) Loop While Not f Is Nothing And f.Address <> a y = f.Row End If End With End If If Not x = 0 And Not y = 0 Then Cells(y, x).Value = xval x = 0 y = 0 End If TextBox1.Text = "" MsgBox x & Chr(10) & y & Chr(10) & xval End Sub
전체 13,315
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚교재 출간 안내] 「진짜쓰는 실무엑셀」 , 드디어 출간되었습니다! (235)
![]() ![]() |
![]() ![]() |
2022.02.03 | 514 | 259660 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 280
|
조회 17726
|
![]() ![]() |
2021.10.28 | 280 | 17726 |
64387 | VBA |
New 아실 크롤링 관련 문의
(1)
![]() |
![]() |
2023.11.30 | - | 21 |
64384 | VBA |
New VBA PivotItem 문의
(1)
![]() |
![]() |
2023.11.30 | - | 18 |
64382 | 파워쿼리/피벗 |
New [파워쿼리] 쿼리안에서 구분기호 기준으로 열분할을 하고 난 후, 아래로 채우기가 안됩니다.!!
(2)
답변완료
![]() |
![]() |
2023.11.30 | - | 25 |
64381 | 함수/공식 |
New row()가 자동으로 변경될 수 있도록....
![]() ![]() |
![]() |
2023.11.30 | - | 29 |
64377 | 피벗테이블 |
New 엑셀 피벗 행/열 비율 산출 질문
(1)
![]() |
![]() |
2023.11.30 | - | 16 |
64376 | VBA |
New 견적서 내용을 리스트업 하는 VBA
![]() ![]() ![]() |
![]() |
2023.11.30 | - | 30 |
64371 | 구글시트 |
New 두 개 시트 연동
(1)
![]() |
![]() |
2023.11.30 | - | 25 |
64370 | 함수/공식 |
New 모든시트를 선택하는 함수가 있을까요?ㅠㅠ
(1)
![]() |
![]() |
2023.11.30 | - | 36 |
64367 | VBA |
New 특정셀에 여러 변수 값을 대입하여 나오는 계산 값을 변수에 맞게 한번에 출력되게 하는 방법이 있을까요??
![]() ![]() ![]() |
![]() |
2023.11.30 | - | 35 |
64366 | 문서서식 |
New 전체인쇄와 시트1개 인쇄시 이미지 품질 저하문제
![]() ![]() |
![]() |
2023.11.30 | - | 18 |
64360 | 함수/공식 |
New 각 열의 텍스트를 비교하여 일치율에 따라 관련열 값 가져오기
![]() ![]() |
![]() |
2023.11.30 | - | 34 |
64359 | 구글시트 |
New 엑셀 또는 구글시트 - 다른시트 데이터의 새로운값만 순차적으로 가져오는방법..
(3)
![]() |
![]() |
2023.11.30 | - | 25 |
64355 | 함수/공식 |
New sumifs 문의 드립니다.
(2)
답변완료
![]() |
![]() |
2023.11.30 | - | 29 |
64353 | 함수/공식 |
New 엑셀 수식이 안 먹어요~
![]() ![]() |
![]() |
2023.11.30 | - | 43 |
64352 | VBA |
New 명령단추 클릭시 색상변경
![]() ![]() ![]() |
![]() |
2023.11.30 | - | 33 |
64351 | VBA |
New Sendkey 초기화 관련 문의
(1)
![]() |
![]() |
2023.11.30 | - | 24 |
64350 |
New 대출금리 자동계산수식 여쭤봅니다
(2)
![]() |
![]() |
2023.11.30 | - | 22 | |
64340 | 함수/공식 |
New 셀 값을 변경하는 수식 사용 중에 작동이 안돼서 문의드립니다.
![]() ![]() |
![]() |
2023.11.30 | - | 33 |
64333 | 함수/공식 |
New 실시간 데이터 연동 방법 좀 알려주실 수 있나요??
(2)
![]() |
![]() |
2023.11.30 | - | 45 |
64329 | 함수/공식 |
New IF와 VLOOKUP을 같이써서 처리를 해야하는 셀인데 어떻게 해야 맞는지 모르겠네요 ㅠㅠ...
![]() ![]() |
![]() |
2023.11.29 | - | 60 |
64327 | 함수/공식 |
New 몇주째 도저히 모르겠습니다ㅜㅜ 일별/주간/월별 데이터 불러올 함수 알려주실분 꼭 부탁드립니다.
![]() ![]() |
![]() |
2023.11.29 | - | 87 |
64326 | 구글시트 |
New 엑셀이나 구글시트에서 특정 데이터를 입력하면 표시,금지 할수있는 방법을 알수있을까요 ?
(3)
![]() |
![]() |
2023.11.29 | - | 41 |
64325 | 함수/공식 |
New 엑셀함수관련 문의드립니다 기초적인부분이지만 해결방법이 궁금합니다
![]() ![]() |
![]() |
2023.11.29 | - | 49 |
64320 | 파워쿼리/피벗 |
New 파워쿼리 엑셀 파일 불러오기 액세스 거부 ㅜㅠ
![]() ![]() |
![]() |
2023.11.29 | - | 41 |
64317 | VBA |
New 집계함수를 반영하니 계산시간이 많이 걸립니다 다른방법이 없는지요
![]() ![]() |
![]() |
2023.11.29 | - | 63 |
64316 | 문서서식 |
New 조건부서식 하나가 막히는 데 도와주세요
![]() ![]() |
![]() |
2023.11.29 | - | 50 |
64312 | 함수/공식 |
New 특정 텍스트 추출
![]() ![]() ![]() |
![]() |
2023.11.29 | - | 74 |
64311 | 함수/공식 |
New 함수 문의
![]() ![]() |
![]() |
2023.11.29 | - | 53 |
64310 | 함수/공식 |
New 기간 중복을 제외하고 주당 사용 일수 계산 문의드립니다.
![]() ![]() ![]() |
![]() |
2023.11.29 | - | 30 |
64294 | 함수/공식 |
New 표준편차 계산시 특정월의 데이터만 계산하고 싶습니다
![]() ![]() ![]() |
![]() |
2023.11.29 | - | 39 |
@상큼애플 님 Change이벤트가 아니라 Exit이벤트에서 처리하도록 하는 게 좋을 듯 합니다.
@원조백수 님 답변 감사합니다! exit로 해보았는데 유저폼을 나가야 매크로가 실행 되는데 혹시 바코드 찍었을때 자동인식하여 매크로가 실행 하게끔 할 수 있는 방법이 있을까요?
@상큼애플 님 텍스트 박스를 선택해 보면 아래의 이벤트를 사용할 수 있을텐데요.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
End Sub
@원조백수 님 덕분에 아래와 같이 이벤트 변경 하고 텍스트 박스에 바코드 찍으면 고유번호 모든자릿수가 찍히는거 까지 해결하였습니다. 그 후에 매크로가 자동 실행 되지 않는데ㅜ
혹시 아래와 같이 하는게 맞을까요?
@상큼애플 님 바코드를 찍으면 텍스트박스에 데이터가 입력이 되고,,, 커서가 그 텍스트 박스 안에 있나요?
아니면 다른 컨트롤로 포커스가 옮겨 가나요?
다른 컨트롤로 옮겨 가지 않으면 Exit 이벤트가 Fire 되지 않습니다.
바코드 리더기에서 읽고 나면 끝에 줄바꿈이나 탭을 추가하도록 설정할 수도 있고...
@원조백수 님 아... 커서가 그대로 있습니다. 그럼 바코드리더기를 qr코드를 읽은 후 엔터를 치도록 설정을 해봐야겠네요. 친절한 답변 감사드립니다!
현재 유저폼에 텍스트박스 하나만 있는데, 바코드리더기에 엔터설정을 추가하고, 유저폼에 명령단추(컨트롤등)을 추가 해줘야 자동 실행이 될까요?
@상큼애플 님 어떤 컨트롤이 되었든 Focus가 옮겨갈 수 있는 컨트롤 하나 추가하고
Enter나 Tab을 바코드 리더기에서 추가해주면 촉발되지 않을까 싶습니다.
@원조백수 님 님 덕분에 대부분 해결 되어 정말 감사드립니다!!
그리고 한가지 기능을 넣고 싶어 질문 드립니다.
포커스가 옮겨 가고 매크로 실행 완료후 textbox1에 포커스가 옮겨가게 하려고 합니다.
마지막줄에 textbox1.setfocus 가 먹히지 않아서 Application.SendKeys "{tab}" 사용하여 포커스를 옮겨 가는데 성공 했습니다. 하지만 처음 한번 입력할때만 옮겨가고 두번째 에서는 Application.SendKeys "{tab}" 이 또한 먹히지 않고 포커스가 커맨트 버튼에 유지 됩니다. 혹시 해결 할수 있는 방법이 잇을까요?
@상큼애플 님 해 보지는 않았는데,
맨 마지막에 SendKey 대신에 Cancel = True 를 넣어 보시면 어떨까요?
TextBox1.Text = "": Application.SendKeys "{tab}"
대신에
Cancel = True
TextBox1.Text = ""
@원조백수 님 오!! 잘되요! 정말 감사합니다. 진짜 덕분에 해결 되었습니다!! 진철한 답변 정말 감사드립니다:)
많이 배워 갑니다:)