Nhờ viết code lọc danh sách từ sheet tổng hợp sang sheet khác

Liên hệ QC

maikhoamt

Thành viên mới
Tham gia
13/7/17
Bài viết
7
Được thích
0
Thân chào các anh chị, mình có 1 file tổng hợp danh sách toàn trường, giờ muốn trích lọc sang 1 sheet khác mà không dùng filter, khi cần lớp nào thì chọn lớp đó (như file thiết kế sẳn). Nhờ các anh chị có thể giúp em viết dùm code lọc dữ liệu được không ạ. cám ơn nhiều lắm. Thân
 

File đính kèm

  • TONG HOP _smas.xls
    140 KB · Đọc: 13
Thân chào các anh chị, mình có 1 file tổng hợp danh sách toàn trường, giờ muốn trích lọc sang 1 sheet khác mà không dùng filter, khi cần lớp nào thì chọn lớp đó (như file thiết kế sẳn). Nhờ các anh chị có thể giúp em viết dùm code lọc dữ liệu được không ạ. cám ơn nhiều lắm. Thân
Filter ngon lành vậy không dùng thì cái nào ngon hơn nữa?
Viết code tôi cũng filter thôi. Nó thế này:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$K$3" Then
     Sheets("TONG HOP").Range("A6:I10000").AdvancedFilter 2, Sheets("Loc theo lop").Range("K2:K3"), Sheets("Loc theo lop").Range("A3:I3")
  End If
End Sub
Cho code này vào sheet "loc theo lop", thay đổi validation tại K3 và xem kết quả
 

File đính kèm

  • TONG HOP _smas.xls
    149 KB · Đọc: 62
Filter ngon lành vậy không dùng thì cái nào ngon hơn nữa?
Viết code tôi cũng filter thôi. Nó thế này:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$K$3" Then
     Sheets("TONG HOP").Range("A6:I10000").AdvancedFilter 2, Sheets("Loc theo lop").Range("K2:K3"), Sheets("Loc theo lop").Range("A3:I3")
  End If
End Sub
Cho code này vào sheet "loc theo lop", thay đổi validation tại K3 và xem kết quả
Em cám ơn nhiều ạ.
 
Filter ngon lành vậy không dùng thì cái nào ngon hơn nữa?
Viết code tôi cũng filter thôi. Nó thế này:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$K$3" Then
     Sheets("TONG HOP").Range("A6:I10000").AdvancedFilter 2, Sheets("Loc theo lop").Range("K2:K3"), Sheets("Loc theo lop").Range("A3:I3")
  End If
End Sub
Cho code này vào sheet "loc theo lop", thay đổi validation tại K3 và xem kết quả
Em muốn hỏi thầy bên sheet "loc theo lop" là có cách nào đóng khung khớp số lượng học sinh khi mình chọn không thầy. Ví dụ khi chọn lớp 7C có 13 học sinh thì đóng khung borders vừa khớp với số lượng, tương tự cho đến các lớp khác. Em xin cám ơn!
 
Em muốn hỏi thầy bên sheet "loc theo lop" là có cách nào đóng khung khớp số lượng học sinh khi mình chọn không thầy. Ví dụ khi chọn lớp 7C có 13 học sinh thì đóng khung borders vừa khớp với số lượng, tương tự cho đến các lớp khác. Em xin cám ơn!

Thì bạn cứ đống khung cho 35 hay 99 dòng, ứng với sỉ số cực đại của 1 lớp có thể;

Sau khi chạy macro thì ta làm vài câu lệnh
L1: Xác định dòng chứa em cuối cùng trong danh sách;
L2: Tiến hành cho ẩn sau dòng này đến dòng cực đại nói trên là được

(Đảm bảo nhẹ nhàng hơn, chứ nhỉ?)
 
Em muốn hỏi thầy bên sheet "loc theo lop" là có cách nào đóng khung khớp số lượng học sinh khi mình chọn không thầy. Ví dụ khi chọn lớp 7C có 13 học sinh thì đóng khung borders vừa khớp với số lượng, tương tự cho đến các lớp khác. Em xin cám ơn!
Thêm dòng:
Mã:
Sheets("Loc theo lop").Range("A4:I10000").Clear
vào trước đoạn filter là được rồi. Tức:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$K$3" Then
    Sheets("Loc theo lop").Range("A4:I10000").Clear
    Sheets("TONG HOP").Range("A6:I10000").AdvancedFilter 2, Sheets("Loc theo lop").Range("K2:K3"), Sheets("Loc theo lop").Range("A3:I3")
  End If
End Sub
 
Thêm dòng:
Mã:
Sheets("Loc theo lop").Range("A4:I10000").Clear
vào trước đoạn filter là được rồi. Tức:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$K$3" Then
    Sheets("Loc theo lop").Range("A4:I10000").Clear
    Sheets("TONG HOP").Range("A6:I10000").AdvancedFilter 2, Sheets("Loc theo lop").Range("K2:K3"), Sheets("Loc theo lop").Range("A3:I3")
  End If
End Sub
Thầy cho em hỏi thêm nếu STT liền kề từ 1 đến 475 (khối 6 đến khối 12) ở sheet"TONG HOP" thì Sheet "loc theo lop" khi chọn lớp thì đếm STT lớp có bao nhiêu học sinh. Code để thêm sẽ như thế nào vậy thầy. Em xin cám ơn.
 
Thân chào các anh chị, mình có 1 file tổng hợp danh sách toàn trường, giờ muốn trích lọc sang 1 sheet khác mà không dùng filter, khi cần lớp nào thì chọn lớp đó (như file thiết kế sẳn). Nhờ các anh chị có thể giúp em viết dùm code lọc dữ liệu được không ạ. cám ơn nhiều lắm. Thân
Em muốn hỏi thầy bên sheet "loc theo lop" là có cách nào đóng khung khớp số lượng học sinh khi mình chọn không thầy. Ví dụ khi chọn lớp 7C có 13 học sinh thì đóng khung borders vừa khớp với số lượng, tương tự cho đến các lớp khác. Em xin cám ơn!

https://drive.google.com/open?id=0B87wpzexmU0UdWxuZXlxNTFJNjA

Góp vui thêm cách dùng hàm FillterArray
Còn về vụ đóng khung thì nếu yêu cầu không cao thì dùng định dạng theo điều kiện cũng ăn được.
Có gì không hiểu về hàm trên thì xem video: httpss://www.youtube.com/watch?v=3ycPw-ByIR4
 
https://drive.google.com/open?id=0B87wpzexmU0UdWxuZXlxNTFJNjA

Góp vui thêm cách dùng hàm FillterArray
Còn về vụ đóng khung thì nếu yêu cầu không cao thì dùng định dạng theo điều kiện cũng ăn được.
Có gì không hiểu về hàm trên thì xem video: httpss://www.youtube.com/watch?v=3ycPw-ByIR4
Cám ơn bạn nhiều. Mình thêm dòng này gần cuối hàng của thầy ndu96081631
Range("A4", Range("A4").End(xlDown)) = "=Row()-3"
Công thức và code mình chưa hiểu nhiều lắm.
 
Thêm dòng:
Mã:
Sheets("Loc theo lop").Range("A4:I10000").Clear
vào trước đoạn filter là được rồi. Tức:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$K$3" Then
    Sheets("Loc theo lop").Range("A4:I10000").Clear
    Sheets("TONG HOP").Range("A6:I10000").AdvancedFilter 2, Sheets("Loc theo lop").Range("K2:K3"), Sheets("Loc theo lop").Range("A3:I3")
  End If
End Sub
Thầy cho em hỏi nếu File này em muốn lọc từ số điện thoại thì mình viết code như thế nào vậy thầy.
 
Muốn sao thì bạn cứ đưa file thực tế lên mới biết cụ thể phải làm thế nào bạn à!
Thầy xem giùm em File (sim có thể trên 2000 số, mình đánh số vô là có thể lọc ra số sim, không phải click chọn). Em xin cám ơn thầy!
 

File đính kèm

  • QUẢN LÝ SIM.xlsx
    125.4 KB · Đọc: 13
Bạn thử:
+> Code cho Sheets
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("C2").NumberFormat = "@"
If Target.Address = "$C$2" Then abc: [c2].Select
If Range("C2") = "" Then ShowAllData
End Sub

+> Code cho Module
PHP:
Sub abc()
With Sheets(1)
.AutoFilterMode = False
.Range("A4:N" & .Range("A" & Rows.Count).End(3).Row).AutoFilter 3, Range("C2")
.Range("A5:N" & .Range("A" & Rows.Count).End(3).Row).SpecialCells(12).EntireRow.Select
End With
End Sub
 

File đính kèm

  • LOC SDT.rar
    49.8 KB · Đọc: 29
Bạn thử:
+> Code cho Sheets
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("C2").NumberFormat = "@"
If Target.Address = "$C$2" Then abc: [c2].Select
If Range("C2") = "" Then ShowAllData
End Sub

+> Code cho Module
PHP:
Sub abc()
With Sheets(1)
.AutoFilterMode = False
.Range("A4:N" & .Range("A" & Rows.Count).End(3).Row).AutoFilter 3, Range("C2")
.Range("A5:N" & .Range("A" & Rows.Count).End(3).Row).SpecialCells(12).EntireRow.Select
End With
End Sub
Cám ơn bạn rất nhiều.
 
Thầy xem giùm em File (sim có thể trên 2000 số, mình đánh số vô là có thể lọc ra số sim, không phải click chọn). Em xin cám ơn thầy!
Lại Advanced Filter tiếp
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$C$1" Then
    If Target.Value = "" Then
      Target.Parent.ShowAllData
    Else
      Range("IV1").Value = Range("C4").Value: Range("IV2").Value = "*" & Range("C1").Value & "*"
      Range("A4:N10000").AdvancedFilter 1, Range("IV1:IV2")
      Range("IV1:IV2").Clear
    End If
  End If
End Sub
 
Lại Advanced Filter tiếp
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$C$1" Then
    If Target.Value = "" Then
      Target.Parent.ShowAllData
    Else
      Range("IV1").Value = Range("C4").Value: Range("IV2").Value = "*" & Range("C1").Value & "*"
      Range("A4:N10000").AdvancedFilter 1, Range("IV1:IV2")
      Range("IV1:IV2").Clear
    End If
  End If
End Sub
Dạ, vâng. Em cám ơn thầy nhiều.
 
Sorry Thầy ndu96081631, E không biết thầy là thầy nên xưng là Anh, Thầy cho e nhờ tí ạ, E đang cần tạo công thức sao cho mỗi lần E thêm dữ liệu bên Sheet HOÁ ĐƠN thì Sheet THEO DÕI HĐ cũng tự động cập nhật các dữ liệu liên quan, ý E là ví dụ bên sheet hoá đơn cập nhật tới số hoá đơn 300 ( tô màu tím) thì bên sheet THEO DÕI HOÁ ĐƠN cũng tự cập nhật tới hoá đơn số 300
 

File đính kèm

  • MAU BIEN BAN NGHIEM THU HANG HOA NAM 2016.xls
    4.8 MB · Đọc: 11
Web KT
Back
Top Bottom