본인이 하는일 중에 특정 입력하는 부분은 매크로로 일괄 입력되도록 하였다.
허나 하루에 3-4건 정도 수정을 해야 하는 업무가 발생한다.
그냥 수기로 써도 되지만 만약 재고 리스트와 이름이 다르거나 띄어쓰기 여부에도 값을 다르게 판단하여 재고리스트에 정확하게 값을 가져오지 못한다...
그렇다고 유효성검사를 쭈욱 설정하는것도 뭔가 본인이 추구하는 엑셀하고도 맞지 않는다.
해서 혹시 수정을 할 경우에만 선택적으로 유효성 검사가 가능한지에 대한 궁금증이 생겼다.. 이게 된다면 필요시만 유효성검사를 가져오면 되고 수정후에는 유효성 검사를 삭제하게 되니 이전보다 실수도 줄이고 깔끔할 수 있을 거라는 결론이 나왔다...
이름하여 선택적 유효성검사.....ㅋㅋㅋ
코드진행은 이렇다.
1) 회원명을 이름정의로 영역설정
2) B열에서 더블 클릭시 유효성 검사실행
3) B열 이외에는 이벤트가 종료
4) 두개 이상의 셀은 선택할 수 없다.
5) 마지막으로, 영역을 선택하면 이벤트 종료
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rngX As Range: Set rngX = Selection '= 더블 클릭한 셀을 이벤트 영역으로 설정
Set rngX = Intersect(rngX, Columns("b")) '= 다른곳이 아닌 B열만 이벤트 영역으로 설정
If Target.Count > 1 Then Exit Sub '= 셀 선택이 하나이상이면 종료
If rngX Is Nothing Then Exit Sub '= B열이 아닌 다른 영역을 선택하면 종료
With rngX.Validation '= 유효성 검사 선언
.Delete '= 기존 유효성 검사 삭제
.Add Type:=xlValidateList, Formula1:="=회원명" '= 회원명 리스트를 유효성 목록에 추가해라
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngX As Range: Set rngX = Selection '= 선택한 셀을 벗어나면
With rngX.Validation '= 유효성 검사를 삭제해라
.Delete
End With
End Sub
일단 본인업무에 탑재를 하였다...
정말 편하고 대박이다...
공부해보시길 바란다.
'VBA' 카테고리의 다른 글
[VBA] 사이냅소프트 면접문제(feat. 코딩도장) (0) | 2022.04.28 |
---|---|
[VBA] 재고관리 프로그램을 만들어보자 (0) | 2022.04.27 |
[VBA] PlaceHolder를 구현해보자 (0) | 2022.04.27 |
[VBA] 성적 등급표 만들기(Feat. 수우미양가~~~) (0) | 2022.04.20 |
[VBA] Alt + Enter 셀 텍스트 색상 변경하기 (0) | 2022.04.20 |
댓글