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

 황기성 (latinum)

추천:  2
파일:     조회:  2492
제목:   [RE]코 드 좀봐 주세요
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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
==============[오솔길님 글에 대한 답변입니다]==============
안녕하세요? 오솔길 님!

코드를 수정해 쓰실 수도 있지만, 별로 바람직 스럽지 못한 방법으로 자료를 관리하고 계신 것 같습니다.

각 날짜별로 입고, 출고, 반품 필드를 만든다는 것은 저로선 상상하기도 힘든 일이로군요

코드를 손보시는 것은 한참 나중에 해야 하셔야 할 일 같습니다.

먼저, 자료를 관리하는 양식에 큰 문제가 있는 것은 아닌지부터 고민해 보심이 좋겠습니다.

그럼...행운이 있으시길...!
 
[불량 게시물 신고]  
복대리황기성님. 참 우매한 질문입니다. 정식으로 배우지 못한 저로서는요..
일자별로 입고, 출고, 반품필드를 만든다는 것이 왜 상상할수 없는 일인지알고 싶습니다.
그리고 어떤식으로 데이타 관리를 하는것이 가장 좋은지 원칙을 좀 말씀해주시겠습니다. 수고스럽지만..

날짜별 데이타 관리시, 어떤식으로 필드나 테이블, 연결을 해야되는지 말입니다...
09-02 (12:16)
삭제 ■신고
황기성김규경 박사님의 아래 강좌를 참고하세요

http://www.officetutor.co.kr/tutor_new/column/kkk-db/index.asp

그럼...행운이 있으시길...!
09-02 (12:32)
삭제 ■신고
복대리^^ 참조를 했는데요.. 강좌를 읽으면 다 이해가 되는데, 직접 오솔김님 시트에서 어떤식으로 데이타 정리하는 것이 좋은지 모르겠군요. 저 같으면 분명히 오솔길님 같이 데이타를 모았을것 같네요. 다른 방법이 생각이 안나는군요..ㅠㅠ  황기성님 같은 경우라면 어찌했을지 힌트 좀 주십시요..09-02 (13:43)
삭제 ■신고
        
  

작성일 : 2003-09-02(12:10)
최종수정일 : 2003-09-02(12:10)
 


 ◎ 관련글

  제 목   작성자   날짜
코 드 좀봐 주세요 오솔길 2003-09-02
[RE]공부삼아 만들어 보았습니다. 푸른가을하늘 2003-09-02
[RE]코 드 좀봐 주세요 황기성 2003-09-02
[RE]코 드 좀봐 주세요 오솔길 2003-09-02
[RE]읽어보세요 정해원 2003-09-02