Làm thế nào để in báo cáo theo điều kiện ngày tháng?.

Liên hệ QC

doanhoanghai

Thành viên hoạt động
Tham gia
20/12/07
Bài viết
195
Được thích
4
MÌnh CÓ MỘt VẤn ĐỀ ChƯa LÀm ĐƯỢc Mong MỌi NgƯỜi GiÚp ĐỠ @$@!^% ! VẤn ĐỀ LÀ In BÁo CÁo Theo Đk NgÀy ThÁng ! RẤt Mong MỌi NgƯỜi GiÚp MÌnh VỚi ! Thank -\\/.
 

File đính kèm

  • IN.rar
    16.7 KB · Đọc: 37
MÌnh CÓ MỘt VẤn ĐỀ ChƯa LÀm ĐƯỢc Mong MỌi NgƯỜi GiÚp ĐỠ @$@!^% ! VẤn ĐỀ LÀ In BÁo CÁo Theo Đk NgÀy ThÁng ! RẤt Mong MỌi NgƯỜi GiÚp MÌnh VỚi ! Thank -\\/.

Mời bạn xem file đính kèm. Bạn chịu khó format lại trang in cho đẹp tí dễ nhìn hơn. Mình đã sửa lại trang in của bạn rồi đó. Chúc bạn thành công!
 

File đính kèm

  • IN_Kiet.rar
    21.7 KB · Đọc: 79
Upvote 0
Thank bạn nhiều nhé !

nhưng bạn ơi mình có hỏi thêm thế này mong bạn chỉ giáo ! -\\/.
 

File đính kèm

  • IN_Kiet.rar
    67.4 KB · Đọc: 34
Upvote 0
nhưng bạn ơi mình có hỏi thêm thế này mong bạn chỉ giáo ! -\\/.

Thì trong đoạn code phần lọc dữ liệu mình đã viết rõ vậy rồi. Bạn muốn thay từ ngày, đến ngày là textbox nào thì điền tên textbox đó vào sau mệnh đề "<=" hoặc ">=" là xong!

Ô cái calendar đơn giản thế sao bạn làm phức tạp thế. Trong activeX control của VBA excel cũng có cái Microsoft Date and Time Picker 6.0 (SP4) đơn giản mà không cầu kỳ. Sao bạn không thử xài cái ActiveX control này xem!
 
Lần chỉnh sửa cuối:
Upvote 0
Đây mình gửi bạn xem file này. Cực kỳ đơn giản mà hiệu quả. Nếu có mỗi cái calendar mà phải viết kinh khủng thế kia thì xài cái có sẵn tiện hơn.


Ps; Sorry Mod, nhờ Mod gộp bài này và bài #4 lại làm 1 nhé!
 

File đính kèm

  • IN_Kiet2.rar
    26.6 KB · Đọc: 55
Lần chỉnh sửa cuối:
Upvote 0
sao mình làm không đc nhỉ

mình có viết cái lịch ngày tháng đâu mình tìm thấy trên mạng đó ! hihi ...
Tuấn Kiệt viết dùm mình với mình kém lắm viết mãi không được này huuhuu giúp mình nhé %#^#$
 
Upvote 0
mình có viết cái lịch ngày tháng đâu mình tìm thấy trên mạng đó ! hihi ...
Tuấn Kiệt viết dùm mình với mình kém lắm viết mãi không được này huuhuu giúp mình nhé %#^#$

Nếu không thấy cái activeX này thì bạn thử vào C:\Windows\system32, kiểm tra xem trong thư mục này có tồn tại file MSCOMCT2.OCX không? Nếu không có thì tải về file đính kèm nhé, và chép nó vào thư mục này C:\Windows\system32, sau đó đăng ký cho ActiveX này nhé!

Để đăng ký activeX này bạn vào Start/Run sau đó gõ vào dòng lệnh:
Mã:
regsvr32 \windows\system32\MSCOMCT2.OCX

Hoặc bạn vào access, tạo mới một database bất kỳ, sau đó vào Tools/ActiveXControl , sau đó click vào nút register, chỉ đến đường dẫn lưu file MSCOMCT2.OCX này (C:\windows\system32\MSCOMCT2.OCX)
 

File đính kèm

  • Mscomct2.rar
    289.8 KB · Đọc: 69
Upvote 0
bạn xem lại dùm mình với

bạn ơi sao mình làm như bạn bảo là mỗi lần chạy là excel đơ luôn à ! không làm thế nào tắt đc cả mình toàn phải dùng ctrl+alt+delele thôi check lại dùm mình nhé còn file trên có tác dụng gì vậy bạn ?@#!^%
 

File đính kèm

  • Xem dum minh.rar
    57.3 KB · Đọc: 19
Upvote 0
bạn ơi sao mình làm như bạn bảo là mỗi lần chạy là excel đơ luôn à ! không làm thế nào tắt đc cả mình toàn phải dùng ctrl+alt+delele thôi check lại dùm mình nhé còn file trên có tác dụng gì vậy bạn ?@#!^%

Bạn tải lại file bài bên dưới nhé, bài số #5. Mình có chỉnh một chút xíu.
 
Upvote 0
bạn sửa giúp mình nhé !

bạn ơi mình làm rồi nhưng vẫn không đc bạn giúp mình với ! thank @$@!^%
 

File đính kèm

  • Xem dum minh.rar
    57.3 KB · Đọc: 27
Upvote 0
bạn ơi mình làm rồi nhưng vẫn không đc bạn giúp mình với ! thank @$@!^%

Bạn đã tải file mới mình đã up lên cho bạn chưa?

Bạn xem.
Đoạn code này trong form:
Private Sub CommandButton3_Click()
"Bạn thiếu cái này:
Range("BegDate") = Me.Textbox1 "của mình là Me.BegDate
Range("EndDate") = Me.Textbox2 "của mình là Me.EndDate
Unload Me

Call MyPrint
End Sub

Và thủ tục này của bạn:
Sub MyPrint()
Dim TuNgay, DenNgay As String
TuNgay = Range("BegDate").Value
DenNgay = Range("EndDate").Value
Sheets("IN").Select
Rows("4:4").Select
Range(Selection, Selection.End(xlDown)).Select
On Error GoTo Kiet
Selection.AutoFilter Field:=8, Criteria1:=">=TextBox1" & Format(TuNgay, "mm/dd/yyyy"), Operator:=xlAnd _
, Criteria2:="<=TextBox2" & Format(DenNgay, "mm/dd/yyyy")
ActiveWindow.SelectedSheets.PrintPreview
Kiet:
Selection.AutoFilter
Selection.AutoFilter Field:=8, Criteria1:=">=TextBox1" & Format(TuNgay, "mm/dd/yyyy"), Operator:=xlAnd _
, Criteria2:="<=TextBox2" & Format(DenNgay, "mm/dd/yyyy")
ActiveWindow.SelectedSheets.PrintPreview
Range("A4").Select
End Sub

Mình đâu có viết vậy đâu, đúng ra phải là:
PHP:
Sub MyPrint()
Dim TuNgay, DenNgay As String
TuNgay = Range("BegDate").Value
DenNgay = Range("EndDate").Value
Sheets("IN").Select
Rows("4:4").Select
Range(Selection, Selection.End(xlDown)).Select
On Error GoTo Kiet
Selection.AutoFilter Field:=8, Criteria1:=">=" & Format(TuNgay, "mm/dd/yyyy"), Operator:=xlAnd _
        , Criteria2:="<=" & Format(DenNgay, "mm/dd/yyyy")
ActiveWindow.SelectedSheets.PrintPreview
Kiet:
Selection.AutoFilter
Selection.AutoFilter Field:=8, Criteria1:=">=" & Format(TuNgay, "mm/dd/yyyy"), Operator:=xlAnd _
        , Criteria2:="<=" & Format(DenNgay, "mm/dd/yyyy")
'ActiveWindow.SelectedSheets.PrintPreview
Range("A4").Select
End Sub

Theo mình nghĩ, có lẽ chúng ta cần hiểu rõ định nghĩa object trên form là gì, range là gì, v.v.., sau đó sẽ từng bước tiến tới.
Bạn tham khảo thêm tại đây.
http://www.giaiphapexcel.com/forum/showthread.php?t=888
 
Lần chỉnh sửa cuối:
Upvote 0
Tuấn Kiệt ơi !

bạn ơi sao mình làm như bạn mà nó vẫn không in ra hoặc báo lỗi gì là sao nhỉ ! mình phải làm sao bây giờ ! giúp mình với nhé !@$@!^%
 

File đính kèm

  • IN(check lai dum minh voi).rar
    67.5 KB · Đọc: 19
Upvote 0
bạn ơi sao mình làm như bạn mà nó vẫn không in ra hoặc báo lỗi gì là sao nhỉ ! mình phải làm sao bây giờ ! giúp mình với nhé !@$@!^%

Bạn xem nhé : Mình chỉ sửa lại chút xíu, còn việc tối giản hóa thì chưa có thời gian

PHP:
Sub InBC(ND As Date, NC As Date)
    Dim HC As Long, i As Long
    If ND = 0 Or NC = o Then Exit Sub
    With Sheet1
        .Range("C1").Value = ND
        .Range("C2").Value = NC
    HC = .Range("A65000").End(xlUp).Row
        '.Range("A1:A" & HC).EntireRow.Hidden = False
        For i = 5 To .Range("A65000").End(xlUp).Row
            With .Range("H" & i)
                If .Value < ND Or .Value > NC Then .EntireRow.Hidden = True
            End With
        Next
        .PrintPreview (False)
        .Range("A1:A" & HC).EntireRow.Hidden = False
    End With
    Application.ScreenUpdating = True
End Sub

PHP:
Public Function SuaNgay(NgayBatKy, Optional Loai As String = "") As Date
    Dim WS As Variant, WP As Variant, WDD As Variant, WMM As Variant, WYY As Variant
    Dim KT As String
    WS = NgayBatKy
    If Not IsDate(WS) Then
        'MsgBoxUni VNItoUNI("Ngaøy khoâng hôp leä "), vbInformation, VNItoUNI("Traàn Troïng Hieáu")
        SuaNgay = Date
    Else
        If InStr(1, WS, "/") > 0 Then
            KT = "/"
        ElseIf InStr(1, WS, "-") > 0 Then
            KT = "-"
        End If
        WP = InStr(1, WS, KT)
        WDD = Left(WS, WP - 1)
        WS = Mid(WS, WP + 1)
        WP = InStr(1, WS, KT)
        If WP = 0 Then
            WMM = WS
            WYY = Year(Date)
        Else
            WMM = Left(WS, WP - 1)
            WYY = Mid(WS, WP + 1)
        End If
        SuaNgay = DateSerial(WYY, WMM, WDD)
        'If Loai = "CN" Then
            'If Weekday(SuaNgay, vbSunday) = 1 Then
                'MsgBoxUni VNItoUNI("Ñaây laø Ngaøy Chuû Nhaät"), vbInformation, ThongTin("TacGia")
            'End If
        'End If
        SuaNgay = Format(SuaNgay, "dd/mm/yyyy")
    End If
End Function

Bạn cứ việc nhập thẳng ngày vào Textbox, không cần chọn qua Calendar đâu.

Thân!
 

File đính kèm

  • IN_OB.rar
    61.8 KB · Đọc: 31
Upvote 0
Tuấn Kiệt ơi !

bạn ơi ! mình làm mấy hôm mà không được theo ý mình à ! mình làm Vd nhỏ mà vẫn không được luôn ! mà đoạn này :
.Range("C1").Value = ND
.Range("C2").Value = NC
HC = .Range("A65000").End(xlUp).Row
mình không muốn cùng C1 , C2 mà dùng text 1 và text 2 được không bạn
bạn có thể hướng dẫn mình không ?
mình còn kém lắm lắm ! mong bạn giúp đỡ @$@!^%
 

File đính kèm

  • Ko dc la sao nhi.rar
    57.9 KB · Đọc: 9
Upvote 0
bạn ơi ! mình làm mấy hôm mà không được theo ý mình à ! mình làm Vd nhỏ mà vẫn không được luôn ! mà đoạn này :
.Range("C1").Value = ND
.Range("C2").Value = NC
HC = .Range("A65000").End(xlUp).Row
mình không muốn cùng C1 , C2 mà dùng text 1 và text 2 được không bạn
bạn có thể hướng dẫn mình không ?
mình còn kém lắm lắm ! mong bạn giúp đỡ @$@!^%

Bạn hãy xem lại bài trên của mình, hãy đọc kỹ các câu trả lời trước khi hỏi tiếp bạn ạ.

Thân!
 
Upvote 0
ý mình không phải thế mình hiểu cách bạn làm nhưng bạn sử lý C1 & C2 thế nào thì mình chưa hiểu thôi ! sao mình cũng làm như bạn không đc . mình chưa biết làm mà ... mong bạn chỉ bảo ! thank /-*+/

thank bạn nhé mình đã làm được và hiểu rồi ! @$@!^% chúc bạn luôn vui vẻ và may mắn--=0

bạn ơi sao in ngày nó cứ tự động + thêm 1 năm là sao nhỉ ! bạn tải bài trước của mình rùi check lại dùm mình với VD :mình nhập 20/07/2008 nó toàn lên 20/07/2009 thôi ~!-+*/
 

File đính kèm

  • mai moi duoc .rar
    59.6 KB · Đọc: 17
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Web KT
Back
Top Bottom