Sort tự động bằng nút ấn

Liên hệ QC

vinhtonx

Thành viên mới
Tham gia
14/12/10
Bài viết
18
Được thích
3
Mình có 1 file excel, mình muốn tạo 1 nút ấn bên sheet 3 để khi click vào đó sẽ tự động Sort dữ liệu của 2 sheet khác (sheet 1 sort theo cột B, sheet 2 sort theo cột C)
Đây là ý tưởng nhưng mình chưa biết cách thực hiện nên mong được chỉ giáo.
 

File đính kèm

Bạn xem file kèm theo. Chỉ cần ghi bằng macro thui mà
 

File đính kèm

Upvote 0
Cám ơn vuminh1601, ..... nhưng không được. Bạn xem lại giúp mình nhé!
 
Upvote 0
Rút gọn giùm bác BaTe:

Mã:
Sub Macro1()
Application.ScreenUpdating = False
    Sheet1.Select
    [A:C].Sort Key1:=[B2], Order1:=xlAscending, Header:=xlGuess
    Sheet2.Select
    [A:C].Sort Key1:=[C2], Order1:=xlAscending, Header:=xlGuess
    Sheet3.Select
    MsgBox ("Hoan Ho , Da Sort xong roi!")
End Sub

Lưu ý: Nếu không còn tác vụ nào khác thì khi thoát Code mặc nhiên Application.ScreenUpdating được set thành True. Lợi dụng nó ta có thể bớt đi 1 dòng lệnh.
 
Upvote 0
Mình có 1 file excel, mình muốn tạo 1 nút ấn bên sheet 3 để khi click vào đó sẽ tự động Sort dữ liệu của 2 sheet khác (sheet 1 sort theo cột B, sheet 2 sort theo cột C)
Đây là ý tưởng nhưng mình chưa biết cách thực hiện nên mong được chỉ giáo.

Nhân tiên đây làm cho bạn 1 cái khi click vào tiêu đề của mỗi cột là nó sẽ tự động sắp xếp theo cột đó.

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Row <> 1 Then Exit Sub
    Rows("2:65536").Sort Key1:=Cells(2, Target.Column), _
                   Order1:=xlAscending, Header:=xlNo

End Sub
 

File đính kèm

Upvote 0
Mình có 1 file excel, mình muốn tạo 1 nút ấn bên sheet 3 để khi click vào đó sẽ tự động Sort dữ liệu của 2 sheet khác (sheet 1 sort theo cột B, sheet 2 sort theo cột C)
Đây là ý tưởng nhưng mình chưa biết cách thực hiện nên mong được chỉ giáo.
Chẳng hiểu bạn sort vậy với mục đích gì? Nếu chỉ... nhìn chơi thì thôi làm bằng tay cho rồi, còn như có mục đích gì khác thì khuyên bạn nên nói rõ! Như vậy có thể mọi người sẽ hướng cho bạn 1 cách làm khác triệt để hơn
 
Upvote 0
Trong quá trình chạy Code mà Application.ScreenUpdating=False thì mọi kết quả của Code sẽ không được cập nhật trên mà hình. Nếu ta tạm dừng code bằng sleep hay msgbox mà cần tham khảo kết quả trước khi chạy Code tiếp thì phải đặt Application.ScreenUpdating=True.
Nếu chạy hết Code rồi thoát ra bảng tính thì Exc tự động đặt Application.ScreenUpdating=True.
Mình thường làm vậy không biết có gì sai không?
 
Upvote 0
Chẳng hiểu bạn sort vậy với mục đích gì? Nếu chỉ... nhìn chơi thì thôi làm bằng tay cho rồi, còn như có mục đích gì khác thì khuyên bạn nên nói rõ! Như vậy có thể mọi người sẽ hướng cho bạn 1 cách làm khác triệt để hơn

Hàng ngày em cần phải in các đơn hàng trước khi đó phải sắp xếp dữ liệu ở sheet 1 & sheet 2 rồi dùng lệnh in ở sheet 3. Thực tế là rất hay quên 2 thao tác sort này nên muốn đưa vào 1 nút ấn để đảm bảo khi in sẽ thực hiện tự động 2 thao tác này.

Em có chạy thử bài của bác sealand đúng với mục đích của mình, TUY NHIÊN, em thử đẩy dòng tiêu đề (Header) xuống vài dòng hoặc chèn thêm 1 số các dòng dữ liệu xuống bên dưới bảng dữ liệu ở sheet1,2 thì ... không được.

Mong được các bác chỉ giáo thêm
 

File đính kèm

Upvote 0
Đấy là việc xếp cả cột, còn lơ lửng thì phải xác định vùng cho nó chứ.
Bạn tham khảo code sau

Mã:
Sub Macro1()
Application.ScreenUpdating = False
    Sheet1.Select
    Range([D4], [F65536].End(3)).Sort Key1:=[E7], Order1:=xlAscending, Header:=xlGuess
    Sheet2.Select
    Range([C7], [E65536].End(3)).Sort Key1:=[E4], Order1:=xlAscending, Header:=xlGuess
    Sheet3.Select
    MsgBox ("Hoan Ho , Da Sort xong roi!")
End Sub
 
Upvote 0
Giúp mình với

Mình muốn làm cá!i nút giống Filter mà khi tích vào nút đó nó có chứa các dữ kiện mà mình đã nhập sẵn. giống như kế toán họ nhập mã hàng theo các mã đã có sẵn ấy. chỉ mình biết với. thanks
 
Upvote 0
Web KT

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

Back
Top Bottom