PROGRAMMING WORKSHOP

도급내역_업체별분리작업자동화|업체목록

분산되는 협력업체별 합계행만들기

당연히 총도급계약내역을 분산하여 각각의 협력업체별로 분리를 하면
협력업체별 합계가 보고 싶을 것이다
이것을 만들어 넣도록 하자
UserForm에 체크박스를 하나 달아서 선택적으로 하도록 하는 것이 좋겠지




...
...
...
''다른 콘트롤과 상대적 위치만 따져서 주면 정확한 위치에 런타임으로 만들어진다
Dim oChk As MSForms.CheckBox
Set oChk = Me.Controls.Add("Forms.CheckBox.1", "chkSum")
oChk.Top = oGroup.Top + oGroup.Height + 6
oChk.Left = oGroup.Left
oChk.Caption = "합계행 만들기"
oChk.Value = False
...
...

위의 체크박스가 체크되었다면 시트를 만들때..
합계행을 만들고 아니면 생략....
아래와 같이...



If Me.Controls("chkSum").Value Then
    Dim rSumRow As Range
    Dim iSumCol As Integer
    Set rSumRow = shtX.UsedRange
    
    '' 열머리 병합참조, 2개의 행에서 찾아야..
    iSumCol = rSumRow.Rows(1).Resize(2).Find("합계", , , Excel.XlLookAt.xlWhole).Column
    Set rSumRow = rSumRow.Rows(rSumRow.Rows.Count).Offset(1)
    rSumRow.Interior.ColorIndex = 12
    With rSumRow.Cells(iSumCol)
        .Font.ColorIndex = 2
        '' 병합행 참조 3번째 셀
        .Formula = "=SUM(" & Range(.EntireColumn.Cells(3), .Offset(-1)).Address & ")"
    End With
    
End If
***[LOG-IN]***