XD360 KÍNH CHÚC CHO MỌI NHÀ VẠN SỰ AN LÀNH!

Phần mềm ôn thi sát hạch chứng chỉ hành nghề xây dựng

 Quên mật khẩu
 Đăng ký mới
Anh Trần HòeBùi Quốc Hưng
Xem: 32578|Trả lời: 20
In Chủ đề trước Tiếp theo
Thu gọn cột thông tin

[Hỏi] Ẩn hiện dòng trong Excel dùng VBA

[Lấy địa chỉ]
Nhảy đến trang chỉ định
1#

Hãy đăng nhập để có nhiều chức năng hữu dụng hơn và xem ảnh rõ hơn!

Bạn phải đăng nhập để xem được nội dung, nếu bạn chưa có tài khoản? hãy Đăng ký mới

x
Chào các anh trong diễn đàn.
Em làm đoạn code ẩn hiện dòng trong excel nhưng chỉ ẩn các dòng cho kết quả rổng, khi nhập dữ liệu vào thì các dòng thì các dòng tự động hiện ra, đoạn code của em chỉ tự động ẩn được các dòng, khi em nhập dữ liệu thì không hiện ra được, em phải Unhide thì mất công quá. Các anh chỉ dùm em với, em mới tập làm VBA nên không biết cách nào, em viết code như sau:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
Dim firstAddress As String
    With Range("C4:C23")
        Set c = .Find(What:=" ", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.EntireRow.Hidden = True
                Set c = .FindNext(c)
            Loop While Not c Is Nothing
        End If
    End With
End Sub an hien dong.xls (31.5 KB, Lượt tải về: 2256)

Đánh giá

Bạn nhớ đặt tên bài đúng nội dung!  Đăng lúc 27/8/2014 14:53

Số người tham gia 1Thanked +2 Thu lại Lý do
nguyenthoyb + 2

Xem tất cả

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

2#
tranhungdao12a3 Đăng lúc 27/8/2014 15:47 | Chỉ xem của tác giả
Xài vầy xem:
[Visual Basic] 纯文本查看 复制代码
Private Sub Worksheet_selectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("c4:c23")) Is Nothing Then
Dim c As Range
Dim firstAddress As String
Rows("4:23").Hidden = False
    With Range("C4:C23")
        Set c = .Find(What:="", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.EntireRow.Hidden = True
                Set c = .FindNext(c)
            Loop While Not c Is Nothing
        End If
    End With
End If
End Sub

Thay vì nhập dữ liệu vô c4:c23 thì bạn nhập dữ liệu sang vùng khác và LInk đến c4:c23 là được đó bạn.

Số người tham gia 1Thanked +2 Thu lại Lý do
nguoibantot + 2 Bài hay. Cảm ơn!

Xem tất cả

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

Được cảnh báo 3#
 Tác giả| mythanh76 Đăng lúc 29/8/2014 09:35 | Chỉ xem của tác giả

mythanh76

Bạn tranhungdao ơi, đoạn code của bạn mình chạy vẫn không được, mình làm rất nhiều file liên kết để quản lý học sinh nên mình rất cần đoạn code ẩn hiện dòng trống tự động khi mình nhập vào thì các file liên kết tự động hiện ra, mình có thử cách dùng Else nhưng nó cứ thụt thò không hay lắm:Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
Dim firstAddress As String
    WithRange("C4:C23")
        Set c =.Find(What:=" ", LookIn:=xlValues)
        If Not c IsNothing Then
           firstAddress = c.Address
            Do
               c.EntireRow.Hidden = True
                Set c= .FindNext(c)
            Loop While Not c Is Nothing
        Else
           Rows("4:23").EntireRow.Hidden = False
        End If
    End With
End Sub


Đánh giá

Chỗ " " và Isnothing viết thành "" và is nothing  Đăng lúc 29/8/2014 10:46
Sao không tiếp tục mà mở topic mới. Tôi Gộp lại  Đăng lúc 29/8/2014 10:20

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

4#
tranhungdao12a3 Đăng lúc 29/8/2014 10:28 | Chỉ xem của tác giả
mythanh76 gửi lúc 29/8/2014 09:35
Bạn tranhungdao ơi, đoạn code của bạn mình chạy vẫn không được, mình làm rất nhiều  ...

Xài vầy đi:
[Visual Basic] 纯文本查看 复制代码
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Dim firstAddress As String
Rows("4:23").Hidden = False
    With Range("C4:C23")
        Set c = .Find(What:="", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.EntireRow.Hidden = True
                Set c = .FindNext(c)
            Loop While Not c Is Nothing
        End If
    End With
End Sub

Gán c4:c23 = g24:g43
Xem File đi bạn
xd360.xlsm (23.75 KB, Lượt tải về: 2190)

Số người tham gia 1Thanked +2 Thu lại Lý do
950XL + 2

Xem tất cả

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

5#
tranhoe Đăng lúc 29/8/2014 10:30 | Chỉ xem của tác giả
mythanh76 gửi lúc 29/8/2014 09:35
Bạn tranhungdao ơi, đoạn code của bạn mình chạy vẫn không được, mình làm rất nhiều  ...

Code của Bạn sai ở đây nè: Set c =.Find(What:=" ", LookIn:=xlValues)
chổ tô màu đỏ tương ứng với ký tự trắng.
đúng ra phải là Set c =.Find(What:="", LookIn:=xlValues)

Đánh giá

Chia sẻ hay! Thanks bạn nhé!: 5.0
Chia sẻ hay! Thanks bạn nhé!: 5
  Đăng lúc 18/11/2017 08:19

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

6#
 Tác giả| mythanh76 Đăng lúc 31/8/2014 03:13 | Chỉ xem của tác giả
Cảm ơn bạn tranhungdao nhé, code được rồi, chúc bạn có nhiều may mắn và sức khỏe.

Đánh giá

Dùng nút "Đánh giá" hoặc "Cảm ơn" nhé!  Đăng lúc 31/8/2014 09:17

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

7#
 Tác giả| mythanh76 Đăng lúc 31/8/2014 04:03 | Chỉ xem của tác giả
Bạn tranhungdao cho mình hỏi thêm một chút nữa nha, cho đoạn code ẩn hiện dòng vào thì nhập dữ liệu các cột bên cạnh nó nháy màn hình nhứt mắt quá, bạn có cách nào cho nó không nháy được không.

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

8#
tranhoe Đăng lúc 31/8/2014 09:21 | Chỉ xem của tác giả
mythanh76 gửi lúc 31/8/2014 04:03
Bạn tranhungdao cho mình hỏi thêm một chút nữa nha, cho đoạn code ẩn hiện dòng vào thì ...

Để màn hình không nhấp nháy thì thêm lệnh Application.ScreenUpdating vào.
Code:
[Visual Basic] 纯文本查看 复制代码
Private Sub Worksheet_selectionChange(ByVal Target As Range)
    Dim c As Range
    Dim firstAddress As String
    Application.ScreenUpdating = False
    If Not Intersect(Target, Range("c4:c23")) Is Nothing Then
        Rows("4:23").Hidden = False
        With Range("C4:C23")
            Set c = .Find(What:="", LookIn:=xlValues)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Do
                    c.EntireRow.Hidden = True
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing
            End If
        End With
    End If
    Application.ScreenUpdating = True
End Sub

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

9#
 Tác giả| mythanh76 Đăng lúc 31/8/2014 17:18 | Chỉ xem của tác giả
Cảm ơn bạn tranhoe (tranhungdao, tung) đã giúp mình về đoạn code. Chúc bạn may mắn và thành công trong công việc, mau chóng có được bạn đời như ý.

Đánh giá

Bạn ý chúc a Tranhoe mau chóng có được bạn đời như ý đó anh TranHoe!hehhhee! Em thì có rồi! Không biết anh Tranhoe có chưa?  Đăng lúc 1/9/2014 20:27
Dùng nút "Đánh giá" hoặc "Cảm ơn" nhé!. Có nghĩa là Bạn làm được rồi.  Đăng lúc 31/8/2014 17:32

Số người tham gia 1Thanked +1 Thu lại Lý do
binhminh838485 + 1 Rất chuyên nghiệp! Thanks!

Xem tất cả

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

10#
nguoibantot Đăng lúc 29/2/2016 16:51 | Chỉ xem của tác giả
tranhungdao12a3 gửi lúc 29/8/2014 10:28
Xài vầy đi:
[mw_shl_code=vb,true]Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Ra ...

Cảm ơn anh tranhungdao12a3 nhiều nhé!Nhờ tham khảo bài viết này của anh mà em đã có thể tự động ẩn dòng và hiện dòng được rồi, code của em là:


Private Sub Worksheet_Activate()
Dim c As Range
Dim firstAddress As String
Application.ScreenUpdating = False
Rows("11:202").Hidden = False
    With Range("A11:A202")
        Set c = .Find(What:=" ", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.EntireRow.Hidden = True
                Set c = .FindNext(c)
            Loop While Not c Is Nothing
        End If
    End With
End Sub


Anh tranhungdao12a3 ơi! Anh có thể giúp em code thêm phần này được không ạ
Ngoài tính năng tự động ẩn dòng và hiện dòng, khi cập nhật sheet “File nguon” - phần Thông tin học viên (cụ thể là chèn thêm dòng) thì các sheet khác cũng sẽ tự động chèn thêm dòng (có copy công thức). Ngoài ra, em cũng nhờ anh tranhungdao12a3 có thể hướng dẫn giúp em thao tác “Undo” khi sử dụng VBA nhé

Cảm ơn các anh tranhungdao12a3 thật nhiều


CSDL.xls

972 KB, Lượt tải về: 1682

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

11#
robinson Đăng lúc 15/5/2016 19:56 | Chỉ xem của tác giả
Trong file của bạn nguoibantot gửi lên thì khi xóa dữ liệu ở cột G trong sheet File nguon thì các sheet khác sẽ tự ẩn dòng, còn xóa dữ liệu các cột khác thì ko. Xin hỏi các a là nếu muốn trong sheet File nguon, khi bất kì ô nào không có dữ liệu thì chức năng ẩn dòng vẫn hoạt động thì sửa code thế nào ạ. Thank các a

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

12#
thienbinh9091 Đăng lúc 26/3/2017 16:14 | Chỉ xem của tác giả
mythanh76 gửi lúc 31/8/2014 17:18
Cảm ơn bạn tranhoe (tranhungdao, tung) đã giúp mình về đoạn code. Chúc bạn may mắn và  ...

Anh tranhoe cho em hỏi là sao em cop y nguyên của anh vào nhung khi chạy vẫn ẩn từng dòng là sao ag?

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

13#
tranhoe Đăng lúc 27/3/2017 20:19 | Chỉ xem của tác giả
thienbinh9091 gửi lúc 26/3/2017 16:14
Anh tranhoe cho em hỏi là sao em cop y nguyên của anh vào nhung khi chạy vẫn ẩn từng dòn ...

Code riêng lẽ như thế này thông thường chỉ áp dụng cho 1 file cụ thể. Muốn biết dùng được hay không thì phải biết đọc code và tùy biến code. Tức là phải có căn bản về VBE.
Cho nên nói như Bạn thì Tôi bó tay. File của Bạn, yêu cầu là của Bạn; Tôi có thấy file đâu. Lấy râu Ông nọ đem cắm vào cằm Bà kia rồi bảo không đúng thì trả lời thế nào?.
Thật sự thiếu chuyên nghiệp!

Số người tham gia 2Thưởng +5 Thanked +2 Thu lại Lý do
songhaotrinh + 1 Chuyên nghiệp. Cảm ơn!
fubi + 5 + 1 Đồng tình. Cảm ơn!

Xem tất cả

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

14#
950XL Đăng lúc 24/10/2017 00:39 | Chỉ xem của tác giả
tranhungdao12a3 gửi lúc 29/8/2014 10:28
Xài vầy đi:
[mw_shl_code=vb,true]Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Ra ...

Anh ơi? Code như vậy thì phải link nhập liệu. Nếu C4:C23 mà ẩn từ C5:C23 khi em nhập liệu vào C4 thì C5 hiện, nhập vào C5 thì C6 hiện thì code phải viết thế nào ạ?
Anh chỉ giúp em với!

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

15#
classicgt Đăng lúc 28/5/2019 10:43 | Chỉ xem của tác giả
Nhờ anh "tranhoe" giúp hộ em VBA. Khi em next lên xuống công cụ Spinner thì trong bảng giá trị ở cột C thay đổi liên tục số hàng. Khi ô giá trị nào ở cột C trống thì tự ẩn đi, có thì tự nhận mở ẩn. Quan trọng cứ giá trị ở ô "N5" thay đổi thì cập nhật ẩn hàng theo điều kiện giá trị ở cột C trống. Như vậy khi em in sẽ khỏi phải mất công ẩn, mở liên tục, rất mất thời gian. Em xin chân thành cảm ơn.

BBNT.xlsm

274.02 KB, Lượt tải về: 635

www.xaydung360.vn XÂY TÂM, DỰNG TẦM CHUYÊN NGHIỆP

Phiên bản Mobile|Phần mềm ôn thi sát hạch chứng chỉ hành nghề xây dựng  

Phần mềm dự toán xây dựng excel | Hướng dẫn lập dự toán xây dựng | Phần mềm tư vấn giám sát | Phần mềm quản lý chất lượng xây dựng |

Phần mềm ôn thi sát hạch chứng chỉ hành nghề xây dựng

Phần mềm ôn thi sát hạch chứng chỉ hành nghề Kiến Trúc sư

Phần mềm ôn thi sát hạch chứng chỉ hành nghề Đấu thầu

GMT+7, 27/4/2024 08:42 , Processed in 0.210952 second(s), 35 queries .

Powered by Discuz! X3.2

© 2001-2013 Kiso Comsenz Inc.