|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
1. 엑셀 버전(95,97,2000,2002):
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):
3. CPU (486,PentiumI/II/III/IV...):
4. RAM (32,64,128,256,512MB,1G...):
* 아래줄에 질문을 작성하세요 >>
얼마전에 질문을 드렸었는데... ㅠ.ㅠ 혼자 낑낑대면서 대강 만들어 봤습니다. 제 나름대로는 제대로 했다고 생각이 드는데 계속 에러가 나네요... ㅠ,ㅠ
(1) 첨부한 파일에 '출납장부' 시트에 '월별보기' 메뉴를 만들었습니다. 어느 예제의 고급필터(?) 부분을 참조하여 만들었는데, 제가 원하는 결과값이 안나옵니다. 전체 데이타에서 원하는 해의 원하는 달 자료만 보이도록 하고 싶은데...
(2) '결산보고서' 시트에 '보고서 출력' 버튼을 만들었습니다. '결산보고서' '수입보고서' '지출보고서'등을 선택하여 출력할 수 있도록 폼을 만들었는데, 마지막에 프린트할 영역을 어떻게 지정해야할지를 모르겠습니다...
지도편달 부탁드립니다.. ^^;
==============[뭉치님 글에 대한 답변입니다]==============
안녕하세요? 뭉치 님!
첫번째 질문은 고급필터가 아니라 자동필터네요^^;;
Private Sub 결산보고서만들기버튼_Click()
'Dim i As Single, j As Single
Dim i As String, j As String
Dim datStart As Date
Dim datEnd As Date
Dim lngL As Long
'With Sheets("출납장부")
' i = 볼년TextBox.Value
' j = 볼월TextBox.Value
'End With
With Me.볼년TextBox
If Len(.Value) = 0 Then
.SetFocus
MsgBox "연도를 입력하십시오!"
Exit Sub
Else
i = .Value
End If
End With
With Me.볼월TextBox
If Len(.Value) = 0 Then
.SetFocus
MsgBox "연도를 입력하십시오!"
Exit Sub
Else
j = .Value
End If
End With
datStart = DateValue(i & "-" & j & "-1") '시작일
datEnd = DateValue(i & "-" & CInt(j) + 1 & "-1") '종료일
With ActiveSheet.UsedRange
lngL = .Cells(.Cells.Count).Row '맨 마지막행의 번호
End With
Application.ScreenUpdating = False
If Application.ActiveSheet.FilterMode = False Then
Else
Range("B7").AutoFilter
End If
Range("b7:u" & lngL).AutoFilter Field:=1, Criteria1:=">=" & datStart, Operator:=xlAnd, _
Criteria2:="<" & datEnd
Application.ScreenUpdating = True
End Sub
Sub 결산보고서인쇄버튼_Click()
Dim str_m As String
str_m = "결산보고서를 출력합니다."
str_m = str_m & vbCr & vbCr & "지금 출력하시겠습니까?"
If MsgBox(str_m, vbYesNo + vbDefaultButton1, "확인") = vbYes Then
Dim i As Integer
With ActiveSheet.PageSetup '페이지 설정은 한번만 하세요^^;;
.LeftMargin = Application.InchesToPoints(0.590551181102362)
.RightMargin = Application.InchesToPoints(0.590551181102362)
.TopMargin = Application.InchesToPoints(0.984251968503937)
.BottomMargin = Application.InchesToPoints(0.78740157480315)
.HeaderMargin = Application.InchesToPoints(0.393700787401575)
.FooterMargin = Application.InchesToPoints(0.393700787401575)
.Zoom = 90
End With
For i = 0 To 보고서ListBox.ListCount - 1
If 보고서ListBox.Selected(i) Then
'Range(보고서(i)).Printpout
'수입보고서의 이름 범위가 잘못지정되어 있으므로 수정하세요...
Range(Me.보고서ListBox.List(i)).PrintOut
End If
Next i
End If
End Sub
그럼...행운이 있으시길..! |
|