VB(A)

달력 생성 및 검색 기능

당근쨈 2015. 4. 18. 08:08

현재 진행 중인 거대 프로젝트 중의 일부.

달력생성 및 검색 매크로

'달력 초기화'를 누르면 공휴일이 반영된 달력이 만들어진다.


그 전에,

달력에는 각 일별로 일정이 적혀있고

노란셀에 일정의 일부를 입력하고 검색버튼을 누르면

해당 일이 검색되면서 링크도 생성된다.

내 혼자 쓰는 거면 change 구문을 썼을텐데, 다 같이 쓰는 거라 에러에 대처가 안 될듯하여 버튼을 삽입하였다.

한 파일에 다른 기능도 있어서 하나씩 올릴 예정


달력만드는 매크로는 예전 식단 만드는 매크로에서 일부만 수정한 거라 검색 매크로만 본문에 올림

검색 매크로는 큰형님의 코드에서 일정 검색 및 링크를 추가하는 코드를 더 넣었다.

큰형님 만세


Sub fdCell()
    Dim rnG As Range, rngM As Range, rngEnd As Range
    Dim i As Integer
    Dim t As String
    
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
    
    Range("I8", Cells(Rows.Count)).Delete
    t = Range("I7")
    
    For i = 2 To 13
        Set rngM = Sheets(i).Range("A3:G13")
    
        If WorksheetFunction.CountIf(rngM, "*" & t & "*"> 0 Then
            For Each rnG In rngM.SpecialCells(2)
                If InStr(rnG, t) Then
                    Set rngEnd = Cells(Rows.Count, "I").End(xlUp).Offset(1)
                    With rngEnd
                        .Value = Sheets(i).Name & rnG.Find(What:=t).Offset(-1& "일"
                        .HorizontalAlignment = xlCenter
                        .Hyperlinks.Add anchor:=.Cells, Address:="", SubAddress:="'" & Sheets(i).Name & "'!" & rnG.Find(What:=t).Address
                    End With
                End If
            Next rnG
        End If
    Next i
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
End Sub
cs


일정.xlsm


'VB(A)' 카테고리의 다른 글

표를 달력으로 보내기  (2) 2015.04.20
자동 빼기  (1) 2015.04.19
소방 21주기 교대근무 근무표  (0) 2015.04.04
근무일수 파악  (0) 2015.04.01
감독자 일자 파악  (0) 2015.03.31