본문 바로가기

이벤트10

[VBA] 이벤트를 통한 업무일지 업데이트 이벤트는 자칫 잘못하면 서로가 꼬이기 때문에 Target의 영역과 제한을 컨트럴하지 못하면 이벤트가 꼬여서 최초에 원하던 모양을 구현하기가 힘들어진다. 같은방 크루인 라이언님의 고민을 풀어보는 글을 써보려한다. 질문 사항은 이렇다. 1. 각 상태에 따라 셀의 색상이 변경되어야 한다. 2. 주의 마지막은 셀의 상태를 선택시 다음주 월요일로 이월되어야 한다. 더보기 Private Sub Worksheet_Activate() Application.EnableEvents = True End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim rngX As Range: Set rngX = [e7:e60] '=일반 상태라인 Dim rngY As Range: S.. 2023. 8. 31.
[기초방] VBA 100제 #42 [ 고급필터 ] 데이터를 새롭게 추가하고 또한 검색을 하는 이벤트 문제이다. 각 시트에 해당하는 이벤트들은 해당시트에서 한번만 사용가능하므로 여러가지 또는 여러 영역에서 이벤트를 발생하려면 Boolean을 통해서 KEY 역할을 하게 하여 적지적소에 이벤트를 발생시켜야 한다. 이 구문은 이렇다. 데이터 영역과 검색 영역이 있는데, 데이터 영역에는 모든 데이터가 입력되었을 때 이벤트가 발생해야 하고, 고급필터의 검색 영역은 일부 검색어 일치에 반응해야 함으로 이를 억지로 하나로 묶어버리면 의도한대로의 이벤트가 발생하지 않는다. 그렇기 때문에 Bln으로 영역을 양분해서 각각의 상황에 맞게 이벤트를 발생시키면 된다. If Not Intersect(rngS, Target) Is Nothing Then bln = True '= 검.. 2023. 3. 16.
[기초방] VBA 100제 #16 [ 이벤트 + 빈셀삭제하기 ] 이러한 문제는 임시적으로 배열에 담았다가 출력을 하면 더 쉽게 가능하지만 아직은 배열과정이 아니기에 철저하게 셀기반으로 풀어보려 한다. 크루들이 과제를 풀어가는 것을 보니 일단 이벤트 개념은 확실히 잡고 가는거 같다. 본인이 공부할때는 이벤트가 참 어려웠다. 엑사남님 강의를 제대로 안 들은것도 있었지만 모듈에서 짜던 코드들이 시트를 넘나 드는것을 보면서 많이 힘들었던 기억이 있다. 엑사남님 강의를 정독으로 3번쯤 볼때 '아..이걸 왜 어려워했지' 했을 정도로 강의 자체를 쉽게 쉽게 하셨으니, 지금 잘 이해가 안 가는 분들은 꼭 강의를 정독하길 바란다. 이벤트에서 Target 이라는 것은 쉽게 말해서 selection 이라고 생각하면 된다. 내가 선택한 셀 또는 영역이 target이 된다. 이문제에서 각 .. 2023. 1. 16.
[기초방] VBA 100제 #15 [ 이벤트 + 사용자함수 ] 이벤트와 사용자함수를 이용하여 해당값들을 찾는 구문이다. 열 찾는 구문에서 보통 column 함수를 사용하면 열번호를 반환한다. 그렇기 때문에 CHR 함수를 통해서 숫자를 열의 알파벳으로 변화를 해야한다. 엑셀함수는 CHAR 이고 CHAR(65) = A 와 같다. 아래 코드는 전체 영역을 순환하면서 일치값이 있으면 열 머리값을 반환하는 코드이다. For Each rngA In rngAll If rngA.Value = X Then Haja_find = Chr(64 + rngA.Column) Exit Function End If Haja_find = "일치없음" Next rngA 나머지 이벤트 코드는 초기화 한 후 일치값에 색상을 입히는 단순한 코드이다. 오늘도 화이팅한 당신께 박수를 보낸다. 더보기 Opt.. 2023. 1. 15.