Kết quả 1 đến 7 của 7

Chủ đề: Làm sao để VBA tự chạy mà không cần sử dụng nút lệnh

  1. #1
    dtphong_1989 Guest

    Làm sao để VBA tự chạy mà không cần sử dụng nút lệnh

    Mình đã thiết lập công thức để tự động ẩn cột bằng code:
    Sub toggleHidden()
    Set k = Range("E7:M7")
    For Each cell In k
    If Len(cell.Value2) = 0 Then
    If Columns(cell.Column).Hidden Then
    Columns(cell.Column).EntireColumn.Hidden = False
    Else
    Columns(cell.Column).EntireColumn.Hidden = True
    End If
    End If
    Next cell
    End Sub

    Nhưng với code này phải gán nút lệnh bấm Ẩn/Hiển thị mà mình thì muốn nó tự động ẩn hiện do dữ liệu ẩn hiện phụ thuộc số môn học của kỳ học. Vậy mình phải làm thế nào?

  2. #2
    linhphukientaythuc Guest
    Trích dẫn Gửi bởi ht3709
    Mình đã thiết lập công thức để tự động ẩn cột bằng code:
    Sub toggleHidden()
    Set k = Range("E7:M7")
    For Each cell In k
    If Len(cell.Value2) = 0 Then
    If Columns(cell.Column).Hidden Then
    Columns(cell.Column).EntireColumn.Hidden = False
    Else
    Columns(cell.Column).EntireColumn.Hidden = True
    End If
    End If
    Next cell
    End Sub

    Nhưng với code này phải gán nút lệnh bấm Ẩn/Hiển thị mà mình thì muốn nó tự động ẩn hiện do dữ liệu ẩn hiện phụ thuộc số môn học của kỳ học. Vậy mình phải làm thế nào?
    Nhìn vào code của bạn không thấy chỗ nào là "số môn học của kỳ học" cả???

    Khi đã ẩn rồi, làm sao bạn "nhập" giá trị được mà cho nó hiển thị lại?

  3. #3
    dungedu Guest
    Bạn ơi mình đính kèm tệp mà không được mình gửi mọi người file mọi người xem giúp mình với: https://mega.co.nz/#!ZtIThLbY!VpejvJ...Z6LLRsdDV5_eCY
    Môn học đã được thiết lập công thức căn cứ kỳ học để trả về giá trị. MÌnh muốn không sử dụng nút lệnh Ẩn/Hiện mà khi lựa chọn kỳ nào cột nào không chứa tên môn sẽ bị ẩn đi

  4. #4
    chucvn Guest
    Trích dẫn Gửi bởi ht3709
    Bạn ơi mình đính kèm tệp mà không được mình gửi mọi người file mọi người xem giúp mình với: https://mega.co.nz/#!ZtIThLbY!VpejvJ...Z6LLRsdDV5_eCY
    Môn học đã được thiết lập công thức căn cứ kỳ học để trả về giá trị. MÌnh muốn không sử dụng nút lệnh Ẩn/Hiện mà khi lựa chọn kỳ nào cột nào không chứa tên môn sẽ bị ẩn đi
    Đặt vào sheetcode của sheet đó đoạn code sau


    Mã:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect([E6], Target) Is Nothing Then
            On Error GoTo 113
            Application.EnableEvents = False
    
            Dim ceLL As Range
            For Each ceLL In Range("F7:M7")
                With ceLL
                    If Len(.Value2) > 0 Then
                        .EntireColumn.Hidden = False
                    Else
                        .EntireColumn.Hidden = True
                    End If
                End With
            Next ceLL
            
    113:    Application.EnableEvents = True
        End If
    End Sub
    Thay đổi giá trị ở E6 sẽ làm ẩn các cột không có giá trị

    sau đó suy nghĩ có thích bỏ việc ẩn hiện cột không thì tùy.

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Cám ơn bác rất nhiều. Bác giúp em cái này nữa nhé!
    Trước tìm hiểu và làm thử sau đó lưu lại đoạn code này nhưng bây giờ sử dụng đến không chạy được. Mình muốn tự động ẩn dòng không chứa dữ liệu phụ thuộc tài khoản nhập vào tại ô E7 và câu lệnh mà trước đây mình đã làm như sau:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$7" Then
    Range("D9").Select
    Selection.AutoFilter Field:=1, Criteria1:="<>"
    End If
    End Sub
    File: https://mega.co.nz/#!4tgQFLDL!v2pxVa...OZ5lBamv0Z9FD8

  6. #6
    caynguqua Guest
    Trích dẫn Gửi bởi ht3709
    Cám ơn bác rất nhiều. Bác giúp em cái này nữa nhé!
    Trước tìm hiểu và làm thử sau đó lưu lại đoạn code này nhưng bây giờ sử dụng đến không chạy được. Mình muốn tự động ẩn dòng không chứa dữ liệu phụ thuộc tài khoản nhập vào tại ô E7 và câu lệnh mà trước đây mình đã làm như sau:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$7" Then
    Range("D9").Select
    Selection.AutoFilter Field:=1, Criteria1:="<>"
    End If
    End Sub
    File: https://mega.co.nz/#!4tgQFLDL!v2pxVa...OZ5lBamv0Z9FD8
    Bạn làm tương tự bài trên thôi, chú ý cái

    Application.EnableEvent=false / true

    ............
    Còn cái khác thì tùy bài mà làm, sai đâu ta sửa đấy, còn link trên là file xlsx không có code

  7. #7
    bacnv Guest
    Hjx...code kia đúng rồi bác ak,em lại cứ copy code rồi nhấn F5 thảo nào nó cứ đồi Macro. VBA e mới tập tọe thôi chứ chẳng biết cái gì có mấy thứ cần cho công việc đi sưu tầm thôi ak. Có đk cũng phải đi học.

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •