Tạo form thể hiện nhắc nhở

  • Thread starter Thread starter new2008
  • Ngày gửi Ngày gửi
Liên hệ QC

new2008

Thành viên mới
Tham gia
23/9/08
Bài viết
15
Được thích
1
Chào cả nhà, do tui mới tìm hiểu về VBA nên nhiều cái còn chưa rõ. Mong mọi người chỉnh giúp code để lọc theo điều kiện : "chưa xong" ở cột J khi form hiển thị thông báo
Cảm ơn mọi người
 

File đính kèm

Chào cả nhà, do tui mới tìm hiểu về VBA nên nhiều cái còn chưa rõ. Mong mọi người chỉnh giúp code để lọc theo điều kiện : "chưa xong" ở cột J khi form hiển thị thông báo
Cảm ơn mọi người
Code của bạn có đoạn:
Dim Notes As String
...
Notes = "chua xong"
...
If Cells(i, 9) < Notes then
...
Là thế nào nhỉ? Ý bạn muốn so sánh cái gì đây?
Nếu bạn muốn lọc theo cột TÌNH TRẠNG (xong hoặc chưa xông) thì kết hợp với AutoFilter là ngon nhất
 
Upvote 0
Ndu96081631, ý mình muốn thể hiện là khi mở file excel thì sẽ hiện form thể hiện list công việc chưa thực hiện xong. Do mình chỉ mới tập làm VBA nên có nhiều đoạn code mình không biết khai báo luôn. Cụ thể :
Private Sub Workbook_Open()
frm_CV.Show
End Sub
Khi frm_CV mở sẽ hiện các công việc có đánh dấu chưa xong.
Nếu dùng Autofilter thì có thể đưa vào form thể hiện đầu tiên khi khởi động file excel được không bạn.
 
Upvote 0
Ndu96081631, ý mình muốn thể hiện là khi mở file excel thì sẽ hiện form thể hiện list công việc chưa thực hiện xong. Do mình chỉ mới tập làm VBA nên có nhiều đoạn code mình không biết khai báo luôn. Cụ thể :
Private Sub Workbook_Open()
frm_CV.Show
End Sub
Khi frm_CV mở sẽ hiện các công việc có đánh dấu chưa xong.
Nếu dùng Autofilter thì có thể đưa vào form thể hiện đầu tiên khi khởi động file excel được không bạn.
Thì dùng AutoFilter nhé
PHP:
Private Sub UserForm_Initialize()
  Dim ReminderRow As Long, Clls As Range
  Application.ScreenUpdating = False
  Reminder.Clear
  With Sheet1.Range("A1").CurrentRegion
    .AutoFilter 10, "<>xong"
    For Each Clls In Intersect(.Cells, .Offset(1, 9)).SpecialCells(12)
      Reminder.AddItem Clls.Offset(, -9)
      Reminder.List(ReminderRow, 1) = Clls.Offset(, -8)
      Reminder.List(ReminderRow, 2) = Clls.Offset(, -7)
      Reminder.List(ReminderRow, 3) = Clls.Offset(, -6)
      Reminder.List(ReminderRow, 4) = Clls.Offset(, -5)
      Reminder.List(ReminderRow, 5) = Clls.Offset(, -4)
      Reminder.List(ReminderRow, 6) = Clls.Offset(, -3)
      Reminder.List(ReminderRow, 7) = Clls.Offset(, -2)
      Reminder.List(ReminderRow, 8) = Clls.Offset(, -1)
      Reminder.List(ReminderRow, 9) = Clls.Offset(, 0)
      ReminderRow = ReminderRow + 1
    Next
    .AutoFilter
  End With
  Application.ScreenUpdating = True
End Sub
Dùng sự kiện Initialize chứ không nên dùng sự kiện Activate
Khai báo biến vừa đủ thôi, cái nào không cần thiết ta bỏ bớt (ở trên chỉ dùng 2 biến là đủ)
 

File đính kèm

Upvote 0
Cái code của bạn gần hoàn thành rồi đấy chỉ cần chỉnh sửa một chút là ok ngay mà.
Private Sub UserForm_Activate()
Me.Caption = "Cong viec thuc hien con ton dong"
Sheets("CV").Select
Dim Notes As String, MaxARRow, Reminder As Integer
Notes = Cells(1, 12).Value
MaxARRow = Range("MaxARRow")
ReminderRow = 0

Me.Reminder.Clear
ListItems = Range(Cells(2, 2), Cells(98, 10))
For i = 2 To MaxARRow
If Cells(i, 10).Value = Notes Then
Me.Reminder.AddItem (Cells(i, 1))
Me.Reminder.List(ReminderRow, 1) = Cells(i, 2)
Me.Reminder.List(ReminderRow, 2) = Cells(i, 3)
Me.Reminder.List(ReminderRow, 3) = Cells(i, 4)
Me.Reminder.List(ReminderRow, 4) = Cells(i, 5)
Me.Reminder.List(ReminderRow, 5) = Cells(i, 6)
Me.Reminder.List(ReminderRow, 6) = Cells(i, 7)
Me.Reminder.List(ReminderRow, 7) = Cells(i, 8)
Me.Reminder.List(ReminderRow, 8) = Cells(i, 9)
Me.Reminder.List(ReminderRow, 9) = Cells(i, 10)
ReminderRow = ReminderRow + 1
End If
Next i

End Sub

"sao mình không thấy chỗ attach file nhỉ?"
 
Upvote 0
Cảm ơn ndu96081631 và sonhn83 rất nhiều. Mình gởi lại file mình thiết kế tương đối hoàn chỉnh, các bạn xem và góp ý sửa chữa giúp mình nha.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom