8월 25 2015
엑셀(EXCEL) – 글꼴이나 글자색이 다른 것을 조건으로 셀 카운팅
제 15호 태풍 고니가 올라와 사무실 바깥 유리창에 비와 바람을 뿌리고
오늘로 예정되었던 협력 회사 Audit는 태풍으로 인해 비행기가 연착되어
내일로 미뤄져서 심심해서 아질게에 올라온 질문 풀이를 시작하였습니다.
http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3507316
(글꼴이나 글자색이 다른 것을 조건으로 카운팅 가능한가요?)
Option Explicit
Sub Count_Special_Cell()
Dim cell_cnt As Integer
Dim RngCel As Range
Dim RngFont As Range
Dim RngRef As Range
cell_cnt = 0
‘ 검색할 영역 설정
Set RngRef = Range(“A1”, Range(“C1”).End(xlDown))
‘ 검색할 셀의 조건을 셀을 클릭해서 선택
Set RngFont = Application.InputBox(“셀 선택”, , Type:=8)
‘ 영역을 선택했을 때 에러 처리
If RngFont.Cells.Count > 1 Then
MsgBox “유효하지 않은 셀이므로 다시 선택하세요”
Exit Sub
End If
‘ 검색할 영역에서 선택된 셀과 같은 조건이 있으면 카운트
For Each RngCel In RngRef
If RngCel.Font.Color = RngFont.Font.Color And RngCel.Font.Bold = True _
And RngCel.Font.Underline = xlUnderlineStyleSingle Then
cell_cnt = cell_cnt + 1
End If
Next
‘ 검색된 셀의 갯수를 보여줌
MsgBox cell_cnt
End Sub
위 내용을 해석하면 선택된 셀의 컬러와 Bold, Underline(Single Line)과 값이 같으면
카운터를 세어서 보여주는 것입니다.
첨부 화일 : 20150825-셀 스타일별 카운트
8월 25 2015
엑셀(EXCEL) – 일자가 기간내 포함된 것인지 확인하여 예약 상황 확인
이제 지금 지나가는 태풍이 끝나고 나면 가을걷이가 한창일 것입니다.
더운 여름 잠시 우리들은 일상을 떠나 휴가를 가서 지친 심신을 달래는데
휴가지의 민박집이나 펜션들은 손님 맞이에 정신이 없었을 것입니다.
휴가지에 숙박을 예약하려면 담당 직원들이 그 숙박지의 예약 상태를 알아야
적절히 룸을 운영하여 예약 잘못으로 인해 모처럼의 휴가를 망치지 않을 것입니다.
어떤 분이 홈페이지를 운영하기 전에 임시로 엑셀로 예약상황을 관리하시겠다고
질문을 올려주셨는데 그 해답?을 간단한 팁으로 올립니다.
http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3505287
(엑셀 날짜 작업 문의)
Option Explicit
Sub Count_Persons_In_Rooms()
Dim cnt As Integer
Dim Indate As Date
Dim RngCel As Range
Dim sht As Worksheet
‘ 검색된 자료를 출력할 위치를 구함
cnt = 1
‘ 검색된 자료를 출력할 시트를 생성, 있으면 경고없이 삭제
Application.DisplayAlerts = False
For Each sht In Worksheets
If sht.Name = “Persons_In_Rooms” Then
sht.Delete
End If
Next sht
‘ 검색된 자료를 출력하기 위한 시트 생성
Worksheets.Add(After:=Sheets(Sheets.Count)).Name = “Persons_In_Rooms”
Set sht = Sheets(“Persons_In_Rooms”)
Sheets(“sheet1”).Select
‘ 같은 시트에 출력할 때 아래 코멘트를 지우고 사용하면 됨
‘ Range(“G2”, Range(“H2”).End(xlDown)).ClearContents
Indate = Cells(1, 6).Value
For Each RngCel In Range(“B2”, Range(“B65536”).End(xlUp))
If Indate >= RngCel.Value Then
‘ check out 날짜는 그날을 포함할지 안할지는 결정(<, <=)
If Indate <= RngCel.Offset(0, 1).Value Then
cnt = cnt + 1
‘ 새 시트에 자료 생성
sht.Range(“A1”).Value = “일자”
sht.Range(“B1”).Value = “호실”
sht.Range(“C1”).Value = “인원”
Range(“F1”).Copy sht.Range(“A” & cnt)
RngCel.Offset(0, 2).Copy sht.Range(“A” & cnt).Offset(0, 1)
RngCel.Offset(0, 3).Copy sht.Range(“A” & cnt).Offset(0, 2)
‘ 같은 시트에 자료 출력할 때는 위의 6줄에 코멘트를 지우고 아래 코드를 사용
‘ Range(“G” & cnt).Value = RngCel.Offset(0, 2).Value
‘ Range(“G” & cnt).Offset(0, 1).Value = RngCel.Offset(0, 3).Value
End If
End If
Next
Application.DisplayAlerts = True
Sheets(“Persons_In_Rooms”).Select
End Sub
그냥 간단하게 출력하는 루틴을 만들었는데 특정 영역을 지정하거나 동적이름을 정의해서
더 활용할 수 있음. 더 확장하면 특정일로 부터 체크아웃하는 날까지 일자별로 리스트를
만들어서 출력할 수도 있으나 간단한 팁으로 올리는 것이므로 응용해서 사용바랍니다.
첨부 화일 : 20150825-Persons_In_Rooms
By vinipapa • 무른모 • 0 • Tags: Excel, Tip, 기간 확인, 엑셀, 예약