Nhờ giúp code lọc dữ liệu và tính tổng

  • Thread starter Thread starter iloveit
  • Ngày gửi Ngày gửi
Liên hệ QC

iloveit

Thành viên thường trực
Tham gia
2/3/13
Bài viết
212
Được thích
52
Giới tính
Nam
Nghề nghiệp
Tự do
Chào anh, chị và các bạn.

Tôi có file dữ liệu như đính kèm. Nay tôi muốn lọc dữ liệu theo khoảng thời gian từ ngày ... đến ngày. Sau khi lọc thì sẽ tính tổng (chỉ tính các giá trị lọc được).
Khi nhấn nút SHOW ALL thì sẽ hiện tất cả dữ liệu như ban đầu.

Nhờ anh/chị và các bạn giúp tôi đoạn code để hoàn thành. Chân thành cảm ơn.
 

File đính kèm

  • MOBILE.xlsm
    MOBILE.xlsm
    866.8 KB · Đọc: 15
  • code loc dl.png
    code loc dl.png
    30.5 KB · Đọc: 17
Chào anh, chị và các bạn.

Tôi có file dữ liệu như đính kèm. Nay tôi muốn lọc dữ liệu theo khoảng thời gian từ ngày ... đến ngày. Sau khi lọc thì sẽ tính tổng (chỉ tính các giá trị lọc được).
Khi nhấn nút SHOW ALL thì sẽ hiện tất cả dữ liệu như ban đầu.

Nhờ anh/chị và các bạn giúp tôi đoạn code để hoàn thành. Chân thành cảm ơn.
Tại sao không làm báo cáo sang Sheets khác mà cứ phải để bên sheets nhập dữ liệu.Không sợ sai dữ liệu à bạn.
 
Upvote 0
Tại sao không làm báo cáo sang Sheets khác mà cứ phải để bên sheets nhập dữ liệu.Không sợ sai dữ liệu à bạn.

Dạ, tại chưa có kinh nghiệm. Nếu được nhờ anh xem giúp lọc kết quả sang Sheet khác cũng được.
 
Upvote 0
Chào anh, chị và các bạn.

Tôi có file dữ liệu như đính kèm. Nay tôi muốn lọc dữ liệu theo khoảng thời gian từ ngày ... đến ngày. Sau khi lọc thì sẽ tính tổng (chỉ tính các giá trị lọc được).
Khi nhấn nút SHOW ALL thì sẽ hiện tất cả dữ liệu như ban đầu.

Nhờ anh/chị và các bạn giúp tôi đoạn code để hoàn thành. Chân thành cảm ơn.
Xem thử File, lọc dữ liệu sang sheet 2.
 

File đính kèm

Upvote 0
Xem thử File, lọc dữ liệu sang sheet 2.

Cám ơn anh

Nhưng em muốn sau khi lọc thì sẽ xem kết quả lọc luôn, em thêm code sau vào cuối sub thì nó báo lỗi (tô vàng) khi chạy sub
Sheet2.Range("C3").Select (viết như vậy báo lỗi)

Còn viết như dưới đây thì được:
Sheets("Sheet2").Select
Range("C3").Selec
t

Còn phần tính tổng sau khi lọc nữa. Nếu được nhờ anh giúp cho.
 
Upvote 0
Chào anh, chị và các bạn.

Tôi có file dữ liệu như đính kèm. Nay tôi muốn lọc dữ liệu theo khoảng thời gian từ ngày ... đến ngày. Sau khi lọc thì sẽ tính tổng (chỉ tính các giá trị lọc được).
Khi nhấn nút SHOW ALL thì sẽ hiện tất cả dữ liệu như ban đầu.

Nhờ anh/chị và các bạn giúp tôi đoạn code để hoàn thành. Chân thành cảm ơn.
 

File đính kèm

Upvote 0
PHP:
Sub AnDong0ThoaDK()
Dim Rws As Long, fDat As Date, lDat As Date, TT As Double, J As Long
Dim hRg As Range

 Rows("12:65500").Hidden = False
fDat = [G7].Value:                 Rws = [B12].End(xlDown).Row
lDat = [g8].Value:                 Application.ScreenUpdating = False
For J = 12 To Rws
    If Cells(J, "B").Value < fDat Or Cells(J, "B").Value > lDat Then
        Rows(J & ":" & J).Hidden = True
    Else
        TT = TT + Cells(J, "J").Value
    End If
Next J
Application.ScreenUpdating = True
[H7].Value = TT
End Sub
 
Upvote 0
Chào anh, chị và các bạn.

Tôi có file dữ liệu như đính kèm. Nay tôi muốn lọc dữ liệu theo khoảng thời gian từ ngày ... đến ngày. Sau khi lọc thì sẽ tính tổng (chỉ tính các giá trị lọc được).
Khi nhấn nút SHOW ALL thì sẽ hiện tất cả dữ liệu như ban đầu.

Nhờ anh/chị và các bạn giúp tôi đoạn code để hoàn thành. Chân thành cảm ơn.
Thử lại xem.
 

File đính kèm

Upvote 0
Chào anh, chị và các bạn.

Tôi có file dữ liệu như đính kèm. Nay tôi muốn lọc dữ liệu theo khoảng thời gian từ ngày ... đến ngày. Sau khi lọc thì sẽ tính tổng (chỉ tính các giá trị lọc được).
Khi nhấn nút SHOW ALL thì sẽ hiện tất cả dữ liệu như ban đầu.

Nhờ anh/chị và các bạn giúp tôi đoạn code để hoàn thành. Chân thành cảm ơn.
 

File đính kèm

Upvote 0
Mình chỉ đơn giản theo yêu cầu của bác chủ thớt! :)

Tại ô sum tổng chỉ cần công thức =SUBTOTAL(9,J12:J15000) là xong!

Sub loc()
'
'Loc ket qua theo ngày da nhap

'
Dim ngaytruoc, ngaysau As String
ngaytruoc = ">=" & Cells(7, 7).Value
ngaysau = "<=" & Cells(8, 7).Value
Range("A11").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.AutoFilter
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=2, Criteria1:= _
ngaytruoc, Operator:=xlAnd, Criteria2:=ngaysau
End Sub

Sub showall()
Range("A11").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.AutoFilter
End Sub
 

File đính kèm

Upvote 0
PHP:
Sub AnDong0ThoaDK()
Dim Rws As Long, fDat As Date, lDat As Date, TT As Double, J As Long
Dim hRg As Range

Rows("12:65500").Hidden = False
fDat = [G7].Value:                 Rws = [B12].End(xlDown).Row
lDat = [g8].Value:                 Application.ScreenUpdating = False
For J = 12 To Rws
    If Cells(J, "B").Value < fDat Or Cells(J, "B").Value > lDat Then
        Rows(J & ":" & J).Hidden = True
    Else
        TT = TT + Cells(J, "J").Value
    End If
Next J
Application.ScreenUpdating = True
[H7].Value = TT
End Sub

Dạ code chạy ok. Còn phần Show All và tính tổng nếu được mong chú giúp. Cảm ơn chú.
 
Upvote 0
Dạ code chạy ok. Còn phần Show All và tính tổng nếu được mong chú giúp. Cảm ơn chú.
Xin phép các Thầy! Hôm nay mạnh dạn tham gia vào diễn đàn. Em mới còn non mong các Thày chỉ bảo thêm ạ!
Phần Show all chỉ cần thêm dong code giống như Thầy SA_DQ làm ban đầu là oke:
Sub Hien()
Rows("12:65500").Hidden = False
End Sub
Còn phần tính tổng các cột 11, 12 thì chỉ cần thêm biến
Dim TT_GS As Double
Dim TT_ GL As Double
Sau đó thêm vào vòng lặp sau Else

TT_GS = TT_GS + Cells(J, "K").Value
TT_GL = TT_GL + Cells(J, "L").Value
Cuối cùng gán giá trị TT, TT_GS, TT_GL vào ô mong muốn
Cũng xin nói thêm với bạn! Mình mới thử với 15000 dòng nhưng code rất chậm. Có lẽ bạn phải kiên nhẫn chờ. Nếu muốn nhanh hơn bạn nên nhờ các Thầy chỉ giáo thêm. Phần này ngoài khả năng của mình. Mình cũng chỉ mới tìm hiểu VBA thôi ạ!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom