Thêm lựa chọn select all sheet (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

tranviethung

Thành viên mới
Tham gia
26/8/08
Bài viết
37
Được thích
3
Mình có file Laysheet này dùng để copy những sheet được lựa chọn trong file vào 1 file excel. Nhưng chưa được tốt vì khi ta cần copy 1 file mà file này có chừng 100 sheet mà có khoảng 98 sheet cần copy, vậy nếu cứ dùng lựa chọn kích chọn từng sheet thì sẽ rất lâu. Vậy mình muốn thêm lựa chọn select all sheet, để lựa chọn tất cả các sheet rùi bỏ chọn 1 sheet nào đó mong các bạn giúp mình.
 
Lần chỉnh sửa cuối:
Nếu là các Sheet liên tục, thì bạn Click Sheet đầu và giữ phím Shift + Click chuột lên sheet cuối.
Nếu là các sheet không liên tục thì bạn giữ phím Ctrl và Click chuột lên sheet muốn chọn.
Cuối cùng là bạn Copy hay Delete tùy ý.

TDN
 
Upvote 0
Đây là 1 ứng dụng mình viết để Ẩn/ Hiện nhiều sheet.
Bạn tham khảo và sử dụng vào bài toán của mình.
(Mình có ít tgian quá nên ko trả lời chi tết được hơn. Thông cảm nhé!)
 

File đính kèm

Upvote 0
Thêm lựa chọn select all sheets!

Nếu là các Sheet liên tục, thì bạn Click Sheet đầu và giữ phím Shift + Click chuột lên sheet cuối.
Nếu là các sheet không liên tục thì bạn giữ phím Ctrl và Click chuột lên sheet muốn chọn.
Cuối cùng là bạn Copy hay Delete tùy ý.

TDN
Bạn hiểu nhầm ý mình rùi vì mình muốn thêm lựa chọn select all sheets vào macro khi mình lựa chọn 1 file để copy các sheet trong file đó vào file Laysheet ý, chứ không phải cách chọn bình thường trên các sheet có sẵn trong file!
 
Upvote 0
Vấn đền này bạn đã đề cập trong 1 Topic nào đó rồi mà, tôi tưởng bạn xử lý xong rồi chứ, nếu không thì bạn nên post tiếp lên Topic đó để mọi người xử lý giúp bạn chứ, mình gửi bạn file này không biết đã đáp ứng đúng ý bạn chưa.
 

File đính kèm

Upvote 0
Bạn hiểu nhầm ý mình rùi vì mình muốn thêm lựa chọn select all sheets vào macro khi mình lựa chọn 1 file để copy các sheet trong file đó vào file Laysheet ý, chứ không phải cách chọn bình thường trên các sheet có sẵn trong file!
Bạn thêm 1 Ctr ten "cmSelectAll" hay gì tùy vào Fr sau đo bổ sung code như sau:
HTML:
'Chọn hết
Private Sub cmSelectA_Click()
    On Error Resume Next
    Dim i As Integer
    For i = 0 To Me.lstSheetName.ListCount - 1
        Me.lstSheetName.Selected(i) = True
    Next
End Sub

Private Sub cmSelectA_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    On Error Resume Next
    Dim i As Integer
    For i = 0 To Me.lstSheetName.ListCount - 1
        Me.lstSheetName.Selected(i) = False
    Next
End Sub
Chúc thành công
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thêm 1 Ctr ten "cmSelectAll" hay gì tùy vào Fr sau đo bổ sung code như sau:
HTML:
Private Sub cmSelectA_Click()
    Dim i As Integer
    For i = 0 To Me.lstSheetName.ListCount - 1
        Me.lstSheetName.Selected(i) = True
    Next
End Sub
Chúc thành công
Làm theo cách này thì chưa đáp ứng đủ yêu cầu của 1 lựa chọn Select All, để có 1 lựa chọn Select All theo đúng nghĩa thì nó phải đáp ứng là: Có thể chọn toàn bộ, có thể bỏ chọn toàn bộ, và trạng thái của điều khiển lựa chọn toàn bộ này phải thay đổi tương ứng với trạng thái của các lựa chọn còn lại, ví dụn bạn lần lượt chọn từ đầu đến cuối, thì khi bạn chọn hết lựa chọn cuối cùng thì điều khiển Select All phải thay đổi trạng thái để nhìn vào đó người ta biết là danh sách đã được chọn hết, hoặc khi đang là chọn toàn bộ rồi, bạn bỏ chọn ít nhất 1 lựa chọn đi thì điều khiển này cũng phải thay đổi trạng thái để người dùng nhìn vào đấy và biết được là danh sách đang không được lựa chọn toàn bộ.
 
Upvote 0
Làm theo cách này thì chưa đáp ứng đủ yêu cầu của 1 lựa chọn Select All, để có 1 lựa chọn Select All theo đúng nghĩa thì nó phải đáp ứng là: Có thể chọn toàn bộ, có thể bỏ chọn toàn bộ, và trạng thái của điều khiển lựa chọn toàn bộ này phải thay đổi tương ứng với trạng thái của các lựa chọn còn lại, ví dụn bạn lần lượt chọn từ đầu đến cuối, thì khi bạn chọn hết lựa chọn cuối cùng thì điều khiển Select All phải thay đổi trạng thái để nhìn vào đó người ta biết là danh sách đã được chọn hết, hoặc khi đang là chọn toàn bộ rồi, bạn bỏ chọn ít nhất 1 lựa chọn đi thì điều khiển này cũng phải thay đổi trạng thái để người dùng nhìn vào đấy và biết được là danh sách đang không được lựa chọn toàn bộ.
Vì chủ topic y/c là chọn toàn bộ, do có nhiều sh (100sh) mà phải click lần lượt 100 sh thì lâu nên có thêm select all sau đó cái nào kg chọn thì ckick bỏ chọn (số lượng sh kg chọn ít (khoảng 10 sh chẳng hạn) thì thời gian chọn ít hơn là ckick 100 lần. Còn nếu muốn bỏ chọn hết thì thêm nút bỏ chọn hết hoặc doubleclick trên nút đó(thêm sự kiện double_click với giá trị Fale là OK.
 
Upvote 0
Vì chủ topic y/c là chọn toàn bộ, do có nhiều sh (100sh) mà phải click lần lượt 100 sh thì lâu nên có thêm select all sau đó cái nào kg chọn thì ckick bỏ chọn (số lượng sh kg chọn ít (khoảng 10 sh chẳng hạn) thì thời gian chọn ít hơn là ckick 100 lần. Còn nếu muốn bỏ chọn hết thì thêm nút bỏ chọn hết hoặc doubleclick trên nút đó(thêm sự kiện double_click với giá trị Fale là OK.
Khách hàng yêu cầu là 1 chuyện, nhưng người viết phần mềm cũng phải biết tư vấn cho khách hàng nữa, với cách làm của bạn thì người dùng khi sử dụng thực tế chắc chắn họ sẽ yêu cầu thêm, vì giả sử họ có 100 Sheet, họ chỉ muốn chọn 1 Sheet thôi, nhưng lỡ tay họ chọn vào Select all, thế là họ phải đi bỏ chọn lần lượt từng cái 1. Còn lựa chọn Select All thì bản thân trên window cũng có rất nhiều chỗ sử dụng, nên khi mình làm thì nên tuân theo. Ngoài ra nếu làm tốt thì phải thêm cái lựa chọn Đảo chọn, tức là khi click vào đấy thì những cái nào đang chọn sẽ thành không chọn, còn cái nào đang không chọn thì thành chọn, như vậy sẽ đầy đủ và chắc khách hàng sẽ không có yêu cầu thêm nữa.
 
Upvote 0
Khách hàng yêu cầu là 1 chuyện, nhưng người viết phần mềm cũng phải biết tư vấn cho khách hàng nữa,
Toi cũng chỉ biết đến đâu nói đến đó và Tất cả đã được thể hiện trên Fr:
1/Click -> chọn tiếp tục click -> bỏ chọn: đã có trên Fr rồi
2/Select All -> chọn tất
3/Cái nào không cần chọn -> click -> bỏ chọn
4/DblClick -> bỏ chọn tất (mới thêm)
Còn để làm cái gì nữa thì ... chịu.
 
Upvote 0
Toi cũng chỉ biết đến đâu nói đến đó và Tất cả đã được thể hiện trên Fr:
1/Click -> chọn tiếp tục click -> bỏ chọn: đã có trên Fr rồi
2/Select All -> chọn tất
3/Cái nào không cần chọn -> click -> bỏ chọn
4/DblClick -> bỏ chọn tất (mới thêm)
Còn để làm cái gì nữa thì ... chịu.
Với cùng 1 yêu cầu thì có nhiều cách để làm, và ai có cách làm nào thì nêu ra để mọi người học hỏi và từ đó có phương án tối ưu cho 1 yêu cầu, còn làm cách nào miễn sao ra kết quả là được, bạn có thể gửi luôn file lên để mọi người tiện tham khảo.
 
Upvote 0
Về macro!

Vấn đền này bạn đã đề cập trong 1 Topic nào đó rồi mà, tôi tưởng bạn xử lý xong rồi chứ, nếu không thì bạn nên post tiếp lên Topic đó để mọi người xử lý giúp bạn chứ, mình gửi bạn file này không biết đã đáp ứng đúng ý bạn chưa.


Có thể bỏ qua thao tác mở File khi add các sheets không, vì mình thấy nếu add bao nhiêu sheets lại mở từng ấy file thì chương trình chạy rất chậm!
 
Upvote 0
Có thể bỏ qua thao tác mở File khi add các sheets không, vì mình thấy nếu add bao nhiêu sheets lại mở từng ấy file thì chương trình chạy rất chậm!
Tới thời điểm hiện tại, mình chưa biết cách nào để add sheet mà không phải mở file lên cả! Nếu bạn có điều kiện, thử nghiên cứu các phần mềm nước ngoài về export data ra excel, họ có thể tạo ra một file excel với nhiều sheet tương ứng với nhiều bảng khác nhau. Mình không có điều kiện nên...... bó tay!
 
Upvote 0
Web KT

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

Back
Top Bottom