Nhờ giúp đỡ ẩn dòng ở các ô có giá trị là 100%

Liên hệ QC

TgiaiDungLe

Thành viên chính thức
Tham gia
3/4/19
Bài viết
52
Được thích
9
Mình có 1 file (như file đính kèm bên dưới). Mình muốn ẩn đi các dòng ở các ô có giá trị là 100%. Nhờ các bạn trong diễn đàn giúp đỡ ạ.
Xin chân thành cảm ơn.
 

File đính kèm

  • testsample.xlsx
    11.8 KB · Đọc: 11
cho em lót dép ngồi hóng cao nhân với ạ :))
 
Upvote 0
Upvote 0
Upvote 0
Mình có 1 file (như file đính kèm bên dưới). Mình muốn ẩn đi các dòng ở các ô có giá trị là 100%. Nhờ các bạn trong diễn đàn giúp đỡ ạ.
Xin chân thành cảm ơn.
Bạn thử file đính kèm, mình tập tành hỗ trợ tí chứ trước giờ toàn....hỏi.
 

File đính kèm

  • testsample-nhnn.xlsm
    21.6 KB · Đọc: 15
Upvote 0
Bạn bấm vào phím Hide để dấu và Show để mở ra
Bạn chú ý cột E (tôi đã Hide), dòng nào có số 1 thì sẽ được ẩn đi khi bấm phím Hide. Bạn có thể viết hàm để tùy nghi muốn ẩn dòng theo điều kiện nào cũng được khi hàm cho kết quả trong cột E là số 1.
Tôi làm cho bạn đến 15000 rows, chắc đủ dùng
Bài đã được tự động gộp:

Tôi thấy lệnh vba của bạn nhnn1986 cũng rất hay.
Trước đây tôi cũng dùng lệnh đó, nhưng có cái hạn chế là với một chương trình lớn thì nó chạy khá chậm, sau đó nhờ bạn "batman1" hướng dẫn với lệnh tôi dùng trong file đã gửi thì nó xử lý với tốc độ chóng mặt luôn.
Để bạn so sánh, khi tôi dùng lệnh trước (xét từng dòng) thì trong một sheet (có khá nhiều hàm trong đó) tôi set đến 3000 rows thì nó chạy khoảng gấn 10 phút (có khi đứng máy luôn), khi dùng lệnh mới (nhập các dữ liệu cần thiết vào một mảng, ở đây là giá trị 1 trong cột E, để xử lý) thì nó chạy trong 10 giây.
 

File đính kèm

  • testsamplevba.xlsm
    20.6 KB · Đọc: 15
Lần chỉnh sửa cuối:
Upvote 0
Bạn bấm vào phím Hide để dấu và Show để mở ra
Bạn chú ý cột E (tôi đã Hide), dòng nào có số 1 thì sẽ được ẩn đi khi bấm phím Hide. Bạn có thể viết hàm để tùy nghi muốn ẩn dòng theo điều kiện nào cũng được khi hàm cho kết quả trong cột E là số 1.
Tôi làm cho bạn đến 15000 rows, chắc đủ dùng
Bài đã được tự động gộp:

Tôi thấy lệnh vba của bạn nhnn1986 cũng rất hay.
Trước đây tôi cũng dùng lệnh đó, nhưng có cái hạn chế là với một chương trình lớn thì nó chạy khá chậm, sau đó nhờ bạn "batman1" hướng dẫn với lệnh tôi dùng trong file đã gửi thì nó xử lý với tốc độ chóng mặt luôn.
Để bạn so sánh, khi tôi dùng lệnh trước (xét từng dòng) thì trong một sheet (có khá nhiều hàm trong đó) tôi set đến 3000 rows thì nó chạy khoảng gấn 10 phút (có khi đứng máy luôn), khi dùng lệnh mới (nhập các dữ liệu cần thiết vào một mảng, ở đây là giá trị 1 trong cột E, để xử lý) thì nó chạy trong 10 giây.
Cảm ơn bạn
Bạn thử file đính kèm, mình tập tành hỗ trợ tí chứ trước giờ toàn....hỏi.
Cảm ơn bác
 
Upvote 0
Bạn thử file đính kèm, mình tập tành hỗ trợ tí chứ trước giờ toàn....hỏi.
Bạn cần phải cập nhật thêm các vấn đề sau:
1) Phải xác định dữ liệu bao nhiêu dòng để duyệt qua vòng lặp đỡ mất thời gian.
2) Nên làm một nút lệnh sẽ gọn gàng và code cũng đỡ một thủ tục.

Mã:
Sub HideAndUnhide()
    Dim e As Long
    Dim Rng As Range
    Dim blnHide As Boolean
    Dim strCaption As String
    strCaption = "Unhide 100%"
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    If Selection.Characters.Text = strCaption Then
        blnHide = False
        Selection.Characters.Text = "Hide 100%"
    Else
        blnHide = True
        Selection.Characters.Text = strCaption
    End If
    Range("C2").Select
    e = Range("C" & Rows.Count).End(xlUp).Row
    For Each Rng In Range("C3:C" & e)
        If Rng.Value = 1 Then
            Rng.EntireRow.Hidden = blnHide
        End If
    Next
End Sub
 

File đính kèm

  • testsample.xlsm
    21.4 KB · Đọc: 20
Upvote 0
Lênh vba của anh Hoàng Trọng Nghĩa rất hay, nhất là chỉ dùng 1 phím để Hide và Unhide.
Nhưng vẫn có hạn chế là xét từng dòng nên chạy rất chậm với các file lớn (có nhiều hàm).
Tôi thử thay thế vào đúng sheet mà tôi dùng lệnh trong file đã cung cấp thì với số dòng set là 20.000 dòng để so sánh thì lệnh mà tôi được anh "batman1" hướng dẫn chạy mất 2 GIÂY, còn lệnh thay thế mất gần 15 phút mà chưa xong, tôi chờ mệt quá nên phải tắt ngang luôn không thể chờ đến khi nó kết thúc.
Lệnh Show cũng mất khoảng 2 giây, tôi không rõ với lệnh thay thế thì mất bao lâu do chưa thực hiện.
Dĩ nhiên với những sheet không lớn lắm như sheet được yêu cầu hoặc lớn hơn thì lệnh của anh Hoàng Trọng Nghĩa rất hay và thiết thực vì chỉ có một button.
Tôi sẽ học theo anh Hoàng Trọng Nghĩa để dùng 1 button thay vì 2 như tôi đang dùng hiện nay.
 
Upvote 0
Như anh @Hoàng Trọng Nghĩa và anh @voduyminh0504 đã phân tích đó ạ.

Lúc đầu em nghĩ chủ thớt sẽ gán code này vào bộ khác nên code làm 2 cái.
Sau thấy Code 1 nút rõ ràng chuẩn hơn rồi ạ, em lại học hỏi thêm được rồi hi hi
 
Upvote 0
Lênh vba của anh Hoàng Trọng Nghĩa rất hay, nhất là chỉ dùng 1 phím để Hide và Unhide.
Nhưng vẫn có hạn chế là xét từng dòng nên chạy rất chậm với các file lớn (có nhiều hàm).
Tôi thử thay thế vào đúng sheet mà tôi dùng lệnh trong file đã cung cấp thì với số dòng set là 20.000 dòng để so sánh thì lệnh mà tôi được anh "batman1" hướng dẫn chạy mất 2 GIÂY, còn lệnh thay thế mất gần 15 phút mà chưa xong, tôi chờ mệt quá nên phải tắt ngang luôn không thể chờ đến khi nó kết thúc.
Lệnh Show cũng mất khoảng 2 giây, tôi không rõ với lệnh thay thế thì mất bao lâu do chưa thực hiện.
Dĩ nhiên với những sheet không lớn lắm như sheet được yêu cầu hoặc lớn hơn thì lệnh của anh Hoàng Trọng Nghĩa rất hay và thiết thực vì chỉ có một button.
Tôi sẽ học theo anh Hoàng Trọng Nghĩa để dùng 1 button thay vì 2 như tôi đang dùng hiện nay.
Cái này chủ thớt muốn dùng Hide, nếu dùng AutoFilter sẽ nhanh hơn vì không có vòng lặp nào quét từ trên xuống dưới.
 
Upvote 0
Cái này chủ thớt muốn dùng Hide, nếu dùng AutoFilter sẽ nhanh hơn vì không có vòng lặp nào quét từ trên xuống dưới.
Không phải thớt muốn dùng "Hide". Rõ ràng thớt nói "code VBA". Việc code VBA dùng cái gì không quan trọng. Bâm nút phát ra kết quả mới là vấn đề chính.
Hình như theo "tính chất công việc" của thớt thì phải bấm nút mới dễ lĩnh lương.

Bạn ơi do tính chất công việc nên mình muốn sử dụng nút hoặc tự động ẩn (có sử dụng code VBA macros) để ẩn chứ sử dụng filter thì mình biết cách làm mà :( mong được hỗ trợ
chưa hiểu bạn ơi, mình muốn sd code vba mà :(
 
Upvote 0
Bạn cần phải cập nhật thêm các vấn đề sau:
1) Phải xác định dữ liệu bao nhiêu dòng để duyệt qua vòng lặp đỡ mất thời gian.
2) Nên làm một nút lệnh sẽ gọn gàng và code cũng đỡ một thủ tục.

Mã:
Sub HideAndUnhide()
    Dim e As Long
    Dim Rng As Range
    Dim blnHide As Boolean
    Dim strCaption As String
    strCaption = "Unhide 100%"
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    If Selection.Characters.Text = strCaption Then
        blnHide = False
        Selection.Characters.Text = "Hide 100%"
    Else
        blnHide = True
        Selection.Characters.Text = strCaption
    End If
    Range("C2").Select
    e = Range("C" & Rows.Count).End(xlUp).Row
    For Each Rng In Range("C3:C" & e)
        If Rng.Value = 1 Then
            Rng.EntireRow.Hidden = blnHide
        End If
    Next
End Sub
Hay quá bác ạ :D chỉ sử dụng 1 nút mà vừa Hide mà Unhide ra được luôn, phải nói là quá đỉnh. Còn về AutoFilter (bộ lọc trong excel) thì em biết (Và hầu như ai sử dụng Excel đều biết ạ) nhưng do boss cần làm 1 nút như vậy nên em mới nhờ các bác hỗ trợ ạ, chứ nếu autofilter thì dễ quá rồi :(
Dù sao đi nữa cũng cảm ơn tất cả mọi người đã hỗ trợ mình ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Dễ mà giờ này vẫn chưa biết làm? Ca này hơi đau đầu.
Dễ với người này nhưng lại khó với người khác ạ, mình cũng đính chính là Autofilter mình biết nhưng phần code để thực hiện hide (thay cho Autofilter) thì mình chưa biết nên mình mới hỏi ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom