lọc dữ liệu tự động cập nhật khi vùng chuẩn thêm điều kiện

Liên hệ QC

soiconkthn

Thành viên mới
Tham gia
25/8/07
Bài viết
34
Được thích
2
Nghề nghiệp
kỹ sư xây dựng
các anh ơi,cho e hỏi e muốn lọc dữ liệu theo điều kiện và nó sẽ tự động cập nhật nếu vùng điều kiện của mình có thêm điều kiện.
e đặt tên cho vùng điều kiện bằng name động : VC
sau đó dùng advancenfilter để lọc
 

File đính kèm

M thấy được mà bạn. Khi bạn dùng Avaced Filter :
Bạn nhập :
List range :$E$6:$G$15
Critere range : vc
Copy to: Bạn chọn 1 vị trí bất kì ô đến
và unique records only
M thấy được mà bạn
Bonne chance!
 
Bạn có thể tự chọn vùng tiêu chuẩn lọc trong macro như sau

PHP:
Option Explicit
Sub SCriteria()
 Dim Rng As Range
 
 Set Rng = Application.InputBox("Hay Chon Vung Chuan", Type:=8)
 Range("E5:G16").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Rng, _
   CopyToRange:=Range("A16:C16"), Unique:=False
 
End Sub
 
cách 1 giống như trên e đã thử nhưng nó vẫn ko tự động cập nhật kết quả được còn cách 2 thì e ko biết sử dụng thế nào,mong được mọi người hưỡng dẫn cách làm.
 
cách 1 giống như trên e đã thử nhưng nó vẫn ko tự động cập nhật kết quả được còn cách 2 thì e ko biết sử dụng thế nào,mong được mọi người hưỡng dẫn cách làm.
Khoan nói đến giải pháp, tôi dám cá với bạn rằng dử liệu của bạn không thể dùng Advanced Filter được đâu... Vì nó thiếu mất tiêu đề cột
Và nếu bạn cứ nhất định lọc bằng Advanced Filter thì Excel sẽ lấy dòng đầu làm tiêu đề
Cứ thử đi sẽ biết
Ít nhất dử liệu nó phải thế này bạn à:

attachment.php
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    24.8 KB · Đọc: 296
Lần chỉnh sửa cuối:
vag may quá anh ndu96081631 anh có thể giúp e lọc cái này được không
cái macro ở trên e cũng hiểu lờ mờ là đặt biến Rng là vùng chuẩn để chọn dữ liệu khi bị thay đổi nhưng e ko biết dùng thế nào
đầy là 2 macro của anh e đọc trên diễn đàn e cũng muốn kết hợp việc xóa dữ liệu cũ đi và tự động thay đổi khi điều kiện lọc bị thay đổi
8> Chỉnh sửa code: Thêm vào phần xóa dử liệu củ trước khi lọc mới
PHP Code:
Sub Loc()
Range("A5:N1000").Clear
Sheet1
.Range("A1:N" & Sheet1.[N65536].End(xlUp).Row).AdvancedFilter 2, [F1:F2], [A5]
End Sub

8> Đưa code vào sự kiện Worksheet_Change để mỗi khi ta thay đổi điều kiện lọc tại F2 thì code tự động chạy
PHP Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If
Target.Address = "$F$2" Then
Range
("A5:N1000").Clear
Sheet1
.Range("A1:N" & Sheet1.[N65536].End(xlUp).Row).AdvancedFilter 2, [F1:F2], [A5]
End If
End Sub
 
vag may quá anh ndu96081631 anh có thể giúp e lọc cái này được không
cái macro ở trên e cũng hiểu lờ mờ là đặt biến Rng là vùng chuẩn để chọn dữ liệu khi bị thay đổi nhưng e ko biết dùng thế nào
đầy là 2 macro của anh e đọc trên diễn đàn e cũng muốn kết hợp việc xóa dữ liệu cũ đi và tự động thay đổi khi điều kiện lọc bị thay đổi
8> Chỉnh sửa code: Thêm vào phần xóa dử liệu củ trước khi lọc mới
PHP Code:
Sub Loc()
Range("A5:N1000").Clear
Sheet1
.Range("A1:N" & Sheet1.[N65536].End(xlUp).Row).AdvancedFilter 2, [F1:F2], [A5]
End Sub

8> Đưa code vào sự kiện Worksheet_Change để mỗi khi ta thay đổi điều kiện lọc tại F2 thì code tự động chạy
PHP Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If
Target.Address = "$F$2" Then
Range
("A5:N1000").Clear
Sheet1
.Range("A1:N" & Sheet1.[N65536].End(xlUp).Row).AdvancedFilter 2, [F1:F2], [A5]
End If
End Sub
Như thế này cho tiện nha: Bạn đưa dử liệu sau khi đã chỉnh sửa lại (như tôi nói ở trên) lên đây ---> Nhớ là dử liệu phải tương đối gần giống với dử liệu thật nhé... Ngoài ra cũng nên nói rõ lọc ra cùng sheet hay lọc khác sheet... vân vân...
 
vâng đây là file mà e muốn nhờ anh làm giúp
vẫn cái file hôm qua anh làm hộ e
lần này e muốn dữ liệu sau khi cập nhật thêm vào,no sẽ tự động cập nhật và lọc ra.
cảm ơn anh rất nhiều
 

File đính kèm

vâng đây là file mà e muốn nhờ anh làm giúp
vẫn cái file hôm qua anh làm hộ e
lần này e muốn dữ liệu sau khi cập nhật thêm vào,no sẽ tự động cập nhật và lọc ra.
cảm ơn anh rất nhiều
Như tôi đã nói ở trên, nếu dùng Advanced Filter để lọc thì bắt buộc phải có tiêu đề ở dử liệu lẩn vùng điều kiện, bạn thiếu tiêu đề nên chắc chắn không thể lọc được (tôi đã sửa lại)
Lưu ý 1 điều quan trọng: Tiêu đề của vùng điều kiện phải giống y chang với tiêu đề của dử liệu gốc, sai dù chỉ 1 dấu phẩy nó cũng không cho kết quả như ý
Bạn muốn sau khi thêm dử liệu vào thì nó tự cập nhật kết quả lọc, theo tôi việc này không tốt cho lắm, vì lúc đó, bạn nhập liệu thì code sẽ chạy và bạn sẽ thấy màn hình cứ giật giật liên tục
Tôi đề xuất giải pháp khác:
- Ta cứ nhập liệu bình thường ở cả vùng dử liệu gốc và vùng tiêu chuẩn
- Khi muốn cập nhật kết quả lọc thì chạy code
code cũng khá đơn giản:
PHP:
Sub Loc()
  Dim ShEW As Worksheet
  Set ShEW = Sheets("enter word")
  ShEW.Range("K6:P1000").Clear
  With Range(ShEW.[A6], ShEW.[F1000].End(xlUp))
    .AdvancedFilter 2, ShEW.Range("Dulieu"), ShEW.Range("K6")
  End With
End Sub
Xem file
--------------------
Nói thêm ngoài lề 1 chút: Tôi khuyên bạn nên hạn chế Format... Nếu bắt buộc phải trang trí thì cũng nên trang trí ở những nơi cần thiết, đừng có Format toàn bộ bảng tính, vì như vậy sẽ khiến cho dung lượng file tăng lên ---> Chẳng hạn sheet structure sentence, bạn làm cái gì mà tô màu đến 65536 dòng thế kia chứ ---> Có phải thừa quá không?
 

File đính kèm

Web KT

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

Back
Top Bottom