|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
1. 엑셀 버전(95,97,2000,2002):
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):
3. CPU (486,PentiumI/II/III/IV...):
4. RAM (32,64,128,256,512MB,1G...):
* 아래줄에 질문을 작성하세요 >>
안녕하세요
아래코드는 검색하여 수량 입력하는것인데요
문제는 텍스터박스의 문자와 시트의문자와 비교할때 대문자 소문자 구별하지않게
하고싶습니다 시트에나 박스에나 대,소문자가 섞여 있거든요
좀고처주시면 감사 하겠습니다
Option Explicit
Private Sub CommandButton1_Click()
'지역,품명,규격,수량
If Txt지역 = "" Then
MsgBox "지역을 입력하세요"
Txt지역.SetFocus
Exit Sub
End If
If Txt품명 = "" Then
MsgBox "품명을 입력하세요"
Txt품명.SetFocus
Exit Sub
End If
If Txt규격 = "" Then
MsgBox "규격을 입력하세요"
Txt규격.SetFocus
Exit Sub
End If
If Txt수량 = "" Then
MsgBox "수량을 입력하세요"
Txt수량.SetFocus
Exit Sub
End If
If Cmb날짜.Value = "" Then
MsgBox "날짜를 입력하세요"
Cmb날짜.SetFocus
Exit Sub
End If
If Cmb항목.Value = "" Then
MsgBox "항목을 입력하세요"
Cmb항목.SetFocus
Exit Sub
End If
Dim intA As Integer
Dim intB As Integer
Dim Rng As Range
Dim YesOk As Boolean
intB = Cmb날짜 * 3 + IIf(Cmb항목.Value = "입고", 1, IIf(Cmb항목.Value = "출고", 2, 3))
With ActiveSheet
intA = .Range("A3").CurrentRegion.Rows.Count + 2
For Each Rng In .Range("A4:A" & intA - 1)
If Rng = Txt지역 And Rng.Offset(0, 1) = Txt품명 And Format$(Rng.Offset(0, 2), "#") = Txt규격 Then
If MsgBox("이미 입력된 자료가 있습니다" & vbCr & "여기에 추가할까요?" & vbCr & _
"(입력된 자료에 추가하지않고 새로 추가하려면(아니오))", vbInformation + vbYesNo, "추가입력") = vbYes Then
YesOk = True
Rng.Cells(1, intB) = Rng.Cells(1, intB) + Txt수량
Else
MsgBox "기존 자료에 추가하지않고 새 항목을 추가합니다."
YesOk = False
Exit For
End If
End If
Next Rng
If YesOk = False Then
.Cells(intA, 1) = Txt지역
.Cells(intA, 2) = Txt품명
.Cells(intA, 3) = Txt규격
.Cells(intA, intB) = Txt수량
End If
End With
Txt지역.SetFocus
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim intA As Integer
Cmb항목.List = Array("입고", "출고", "반품")
For intA = 1 To 31
Cmb날짜.AddItem intA
Next intA
End Sub
==============[오솔길님 글에 대한 답변입니다]==============
안녕하세요? 오솔길 님!
코드를 수정해 쓰실 수도 있지만, 별로 바람직 스럽지 못한 방법으로 자료를 관리하고 계신 것 같습니다.
각 날짜별로 입고, 출고, 반품 필드를 만든다는 것은 저로선 상상하기도 힘든 일이로군요
코드를 손보시는 것은 한참 나중에 해야 하셔야 할 일 같습니다.
먼저, 자료를 관리하는 양식에 큰 문제가 있는 것은 아닌지부터 고민해 보심이 좋겠습니다.
그럼...행운이 있으시길...!
==============[황기성님 글에 대한 답변입니다]==============
감사합니다
그런데요 날짜별로 하는 이유는 언제 무엇이 들어오고 나갔는지 확인할 경우가
생기구요 그리고 마지막 31일 다음에는 입고,출고,반품 항목을 만들어 한달간의
누계가 나오도록 할겁니다.
그리고 자동필터를 해서 항상 어느지역 혹은 어느품명이 어떻게됬은지 알수있게요
날짜 별로 시트를 만들수도 아니면 지역별로 시트를 만들수도 있겠지만
현제의것이 모든걸 한시트에서 할수있으니까 저로서는최선의길인것 같습니다
그러니까 다시한번 질문에 답변부탁드립니다 |
|