달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
반응형
728x90
반응형

 

 

 

[ 엑셀VBA 7 ] 불량관리 프로그램 만들기 - 유효성검사를 통한 입력 규칙 만들기

 

 

데이터 베이스를 관리하기 위해서 여러가지 방법을 입력된 데이터를 일관성 있게 입력해야만

나중에 데이터베이스의 용도로 활용하기 위해서는 일관성있는 이름과 규칙으로 입력할 필요

가 있다.

이때, 사용할 수 있는것이 유효성 검사이다. 유효성 검사의 경우 지정된 목록과 지정된 목록

의 이중 조건으로 검색 조건을 지정하여 입력 규칙을 규제할 수가 있다.

 

 

 

먼저 공정 시트의 타입데이터의 범위를 선택한 다음

 

화살표와 같이 이름을 '타입'으로 입력한다.

 

 

 

데이터의 유효성검사를 클릭한다.

 

 

제한대상을 목록으로 선택하고 원본에 =타입 으로 입력한다.

 

 

 

자 인제 모델의 입력란에 정확히 적용 되었는지 확인하면 아래와 같이 나타난다.

 

 

이러한 방법으로 공정, 불량코드를 입력하는 데

 

공정의 경우 위와 같은 방법으로 공정으로 입력될 범위를 '공정'으로 이름을 지정후

 

유효성검사를 통해 위와 같이 목록으로 표시될 수 있도록 만든다.

 

 

 

 

 

위와 같이 공정1,공정2는 그룹1에 속해 있고, 공정3,공정4는 그룹2에 속한 경우는

 

간단히 if함수를 이용하여 해결할 수 있다.

 

=IF(OR(E2="공정1",E2="공정2"),"그룹1","그룹2")

 

위를 간단히 설명하면 =if(조건이 참이면, 값1,아닌경우 값2)의 방식인데

 

여기서는 2개의 값을 만족해야 하므로 OR함수를 사용하여

 

OR(E2="공정1",E2="공정2")

공정이 입력된 란이 공정1 혹은 공정2인 경우라고 규정해 준다.

 

이것은 참의 조건이 위의 조건이면 그룹1, 아닌경우 그룹2로 지정해주었다.

 

 

 

이제 그룹까지 불량 데이터입력을 위한 기본설정 완료 다음 시간에는 공정을 공정1, 공정2등을

 

어떻게 선택하느냐에 따라 불량코드가 달라질 수 있도록 이중 유효성검사를 적용해 보겠다.

 

 

불량율관리 프로그램 만들기 시리즈

 

1. 매크로의 이해

2. 절대참조와 상대참조

3. 조건절 if

4. 반복문 for - next

 

5. 조건문 select case

6. 데이터베이스의 구성

7. 유효성검사를 통한 입력 규칙만들기

8. 이중유효성검사 적용

 

9. 엑셀 데이터베이스 사용설정 적용하기

10. 분석툴 만들기

11. 데이터입력 행삽입 모듈만들기

12. 대용량 DB사용을 위한 SQL함수 알아보기

13. SQL 합수 프로그램에 적용하기

 

 

728x90
반응형
:
Posted by mapagilove
728x90
반응형

 

 

[ 엑셀 VBA] 문자열 자료형 , 데이터 형변환

 

VBA를 접하면서 가장 자주 사용하는 형들이 있지만 다양한 형태로 쓰는 문자형과 각 데이터의

형의 변환에 대하여 정리하여 본다.

 

 

문자열자료형(String형)

 

1. 숫자값이 아닌 문자열만을 포함하는 변수는 String 유형으로 선언.
2. + : 여러개의 문자열을 하나로 연결할때 사용하는 기호
3. & : 문자열이 아닌 다른형과 문자열을 연결 시킬때 사용

4. 문자열 변수 또는 인수의 기본값: 새 데이터가 지정되었을 때

    길이가 변하는 가변길이 문자열이나 다음구문처럼 고정길이 문자열로 지정

 

 

 문자열 자료형 사용함수

 

 

데이터의 형의 변환 함수

 

 

 

 

 

 

 

728x90
반응형
:
Posted by mapagilove
728x90
반응형

 

 

 

[ 엑셀VBA 6 ] 불량관리 프로그램 만들기 - 데이터베이스 구성

 

 

며칠 동안 불량관리 데이터 베이스에 대하여 고민을 하다가 이제서야 올려본다. 불량율 관리

 

프로그램을 만들기 위해 우선 데이터베이스 구성을 해야하는 데 구조를 잠깐 설명하면 아래

 

와 같다.

 

 

데이터베이스 구성

 

1. 타입별 생산 수량입력 시트

 

2. 불량이력 및 수량관리 시트

 

3. 타입, 공정,불량유형 등 기본 데이터 시트

 

4. 공정별 데이터 분석 시트

 

의 4가지로 구성하면 기본적인 불량관리 프로그램 파일이 완성된다.

 

 

가장 먼저 불량율을 구하기 위해선 생산 데이터의 입력이 필요하겠죠? 

 

 

두번째로는 제품의 불량정보를 입력해야 생산수량에 대하여 불량율이 나온다.

 

기타 아래 만들어진 필드는 불량율관리와 분석 히스토리를 같이 관리하기 위한

 

기본 필드들이라고 할 수 있다.

 

 

 

아래는 각 입력필드를 데이터베이스로 관리하기 위한 구성이다.

 

 

 

마지막으로 여기는 위의 데이터베이스를 이용하여 최종 각 공정별 분석챠트나

 

정보를 만들면 좋겠지요?

 

이미 구상은 되어 있지만 차츰 진행하기로 한다. (공정별 불량정보... 등)

 

 

자 인제 다음시간부터는 본격적으로 불량관리 프로그램을 만들어 볼예정이다.

 

마음의 준비하시길....

 

 

 

Q-분석_데이터베이스_2014.12.17.xlsx

 

불량율관리 프로그램 만들기 시리즈

 

1. 매크로의 이해

2. 절대참조와 상대참조

3. 조건절 if

4. 반복문 for - next

 

5. 조건문 select case

6. 데이터베이스의 구성

7. 유효성검사를 통한 입력 규칙만들기

8. 이중유효성검사 적용

 

9. 엑셀 데이터베이스 사용설정 적용하기

10. 분석툴 만들기

11. 데이터입력 행삽입 모듈만들기

12. 대용량 DB사용을 위한 SQL함수 알아보기

13. SQL 합수 프로그램에 적용하기

728x90
반응형
:
Posted by mapagilove
728x90
반응형

 

 

 

[ 엑셀VBA ] 입력된 날짜의 마지막 날짜 구하기 - DateAdd 함수

 

 

대용량의 데이터를 다루는 작업을 하다보면 현재 날짜로 부터 첫날짜를 구하고 이 날짜로 부터 월의 마지막 날짜

를 구하여 월의 첫날과 마지막 날사이의 데이터 집게를 구하는 경우가 많은데 오늘을 이러한 날짜를 구하는

프로시져를  포스팅하고자 한다.

 

 DateAdd 함수를 사용하여 구하는 데  DateAdd의 구조는  DateAdd("기간", 더하거나 뺄 기간(정수), 지정한 날짜)

의 구조로 이루어져 있다.

 

 

    Dim StartDay$

    Dim tmpday $

    Dim EndDay $

 

     ActiveSheet.Cells(1 1).Value = Format(ActiveSheet.Year1.Value & "-" & ActiveSheet.Mon1.Value & "-01, "YYYY-MM-DD")
    '--> 먼저 Cells(1,1)에 Year1 , Mon1, Day1의 콤보박스로 부터 연 - 월 - 일을 받는다.

    '--> 그 다음 마지막 일을 01일로 정하여 다음달의 첫날을 구하기 위함.

 

     StartDay = ActiveSheet.Cells(1, 1).Value

    '--> StartDay을 위의 cells(1, 1)의 값을 정의
     tmpday = DateAdd("m", 1, StartDay)   '--> StartDay을 위의DateAdd함수를  이용하여 m(월) 을 1을 더해 다음달을 구함.


     EndDay = DateAdd("d", -1, tmpday)'--> tmpday 를 위의DateAdd함수를  이용하여 d(일) 을 1을 빼서 이번달 마지막날을 구함.
 


     ActiveSheet.Cells(1 2).Value = ActiveSheet.Year1.Value & "-" & ActiveSheet.Mon1.Value & "-" & EndDay

 

    '--> cells(1,2)에 현재 달의 마지막 날짜를 구한다.

 

     여기서 Y(년), M(월), D(일), W(주)를 dateadd의 두번째 숫자입력을 통해 빼거나 더할 수 있다.

 

 

해당 함수를 잘 이용하여 업무에 잘쓰시길....

 

 

728x90
반응형
:
Posted by mapagilove
728x90
반응형

 

 

 

[ 엑셀VBA 5 ] 불량관리 프로그램 만들기 - 조건문 Select Case

 

엑셀VBA를 하다보면 여러가지 정해진 조건들을 한꺼번에 지정하려다 보며 중첩 IF문등으로는 한계를

경험하게 되는 데 12개월의 숫자로 받은 데이터를 디스플레이 및 문서를 위해 영문으로 표현한다것나

하는 부분 처럼 다양한 조건을 한가지 조건문으로 표현하기 어려운 경우 사용할 수가 있다.

 

 

예시) 1월 ~ 12월 데이터를 조회시는 숫자로 쓰다가 문서에 표시할때는 영어로 표현하는 예시이다.

 

 

 

     ActiveSheet.Cells(1, 1).Value = Month(Now()) ' 현재시트의 A1번에  현재날짜의 월값을 입력한다. --> 결과 12


     Select Case ActiveSheet.Cells(1 1).Value       '--> A1번시트의 숫자에따라 값을 출력한다.
     Case 1: ActiveSheet.Cells(1, 2).Value = "Jan"  '--> A1번의 값이 1인 경우 "Jan"을 출력한다. 하기는 월별로 영문값을
     Case 2: ActiveSheet.Cells(1, 2).Value = "Feb"        ' 출력한다.
     Case 3: ActiveSheet.Cells(1, 2).Value = "Mar"
     Case 4: ActiveSheet.Cells(1, 2).Value = "Apr"
     Case 5: ActiveSheet.Cells(1, 2).Value = "May"
     Case 6: ActiveSheet.Cells(1, 2).Value = "Jun"
     Case 7: ActiveSheet.Cells(1, 2).Value = "July"
     Case 8: ActiveSheet.Cells(1, 2).Value = "Aug"
     Case 9: ActiveSheet.Cells(1, 2).Value = "Sep"
     Case 10: ActiveSheet.Cells(1, 2).Value = "Oct"
     Case 11: ActiveSheet.Cells(1, 2).Value = "Nov"
     Case 12: ActiveSheet.Cells(1, 2).Value = "Dec"

    Case else                                               '

             msgbox "13이하의 값을 입력"     '--> 현재 입력값이 1~ 12사이의 값이 아니면 값을 입력하라는 메세지를 띄움
     End Select

 

 

여기서 Select Case 구문을 마치는 데 이러한 구조를 이용하면 특정한 경우를 Function으로 만들어 월을 문자로 출력

하는 것이 가능하다.

 

불량율관리 프로그램 만들기 시리즈

 

1. 매크로의 이해

2. 절대참조와 상대참조

3. 조건절 if

4. 반복문 for - next

 

5. 조건문 select case

6. 데이터베이스의 구성

7. 유효성검사를 통한 입력 규칙만들기

8. 이중유효성검사 적용

 

9. 엑셀 데이터베이스 사용설정 적용하기

10. 분석툴 만들기

11. 데이터입력 행삽입 모듈만들기

12. 대용량 DB사용을 위한 SQL함수 알아보기

13. SQL 합수 프로그램에 적용하기

 

 

 

 

728x90
반응형
:
Posted by mapagilove
728x90
반응형

 

 

 

[ 엑셀VBA ] 데이터의 형식

 

 

변수 : 처리할 데이터를 저장하기 위한 컴퓨터상의 기억공간이다.

 

변수의 선언 : 컴파일러에게 특정 유형의 기억공간을 확보하라는 지시어

단, VB에서는 암시적 선언이 가능하지만

1. 기본 데이터형이 Variant 형으로 처리되므로 쓸데없이 메모리가 낭비

2. 코드 입력 실수로 변수명의 철자를 틀리게 입력시키면 에러의 원인 찾기 힘듬

 

변수의 명시적 선언 : Option Explicit 이라는 문장은 선언되지 않은 변수명을 만나면 VB으로 하여금

        에러 메시지를 보여주도록 지시한다.  선언하지 않은 변수명을 만나면

  에러 메시지를 보여주도록 지시한다.

 

 

 

엑셀 VBA에서 데이터 형식의 종류는 숫자형식, 문자형식, 논리값, 기타 등이 있다.

 

1) 숫자지정 : Integer, Long, Single, Double

2) 논리값 지정: Boolean

3) 문자지정: String 등

4) 엑셀에 나타나는 다양한 개체들을 다루기위한 Object, Currency, Date, Variant등이 있다.

    여기서 데이터 형식을 지정하지 않으면 Variant로 지정된다.

 

 

비주얼 베이직의 데이터형 : Dim 변수명 [ As 데이터유형 ]

 

데이터 유형에는 기본적으로 byte, integer, long, boolean, single, double, currency,

   string( 가변길이 ), string*n( 고정길이 ), Variant, Date, Object,

   기타( 사용자 정의형 등.. )

 

정수 데이터 : Byte( 0 ~ 255 ), Integer( 16bit로 -32768 ~ +32767 ), Long( 32bit로 큰 숫자용 )

 

논리형 데이터 : True( '0'을 제외한 모든 값 ) / False( '0' )

 

실수( 부동소수점 )형 : 정밀도를 요구하는 작은 수나 아주 큰수로 Single( 4바이트 )이나

           Double( 8 바이트 )을 사용하면 된다.

 

통화( Currency )형 : 소수점 15자리와 소수 이하 4자리를 표현

예) -922,337,203,685,477.5808

 

문자열( String )형 : Dim str As String * 5 로 선언하고 5바이트를 초과하는 문자열을 대입하면

       에러는 발생치 않지만, 문자열의 우측이 자동으로 잘린다.

 

Variant 형 : 저장되는 데이터 유형에 따라 그때 그때 자동적으로 변수의 변환이 발생된다.

예) Variant 형은 작은 정수가 대입되면 Integer 형 같이 반응하다가도 큰 정수값이

     대입되면 Long형 같이 반응하며, 만일 실수값이 대입되면 Single( 혹은 

     Double )로 변신한다.  기타 날짜나 문자열, 개체의 참조가 지정될 수도 있다.

 

날짜( Date )형 : # ..... # 로 묶어서 표현해야 하며 100년 1월 1일부터 9999년 12월 31일까지의

  날짜와 0시 0분 0초부터 23시 59분 59초까지의 시간을 의미하는 8 바이트 수치

 

 

 

 

728x90
반응형
:
Posted by mapagilove
반응형