Tự động hiện thông báo khi mở Form (1 người xem)

Liên hệ QC

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

duyangels

Thành viên mới
Tham gia
7/2/10
Bài viết
49
Được thích
9
Mình có file thông báo các ngày đặc biệt giống kiểu ghi chú nhắc nhỡ. Mình muốn khi mở Form danh sách lên thì tự động hiện thông báo bằng msgbox (cần có tiếng việt) các khách hàng có thông báo là "Chuẩn bị tổ chức" nội dung là dữ liệu trong ô nội dung của khác hàng đó luôn. 1 khách hàng 1 msgbox.
Chân thành cám ơn các bác.
 

File đính kèm

Mình có file thông báo các ngày đặc biệt giống kiểu ghi chú nhắc nhỡ. Mình muốn khi mở Form danh sách lên thì tự động hiện thông báo bằng msgbox (cần có tiếng việt) các khách hàng có thông báo là "Chuẩn bị tổ chức" nội dung là dữ liệu trong ô nội dung của khác hàng đó luôn. 1 khách hàng 1 msgbox.
Chân thành cám ơn các bác.
Trong Module bạn thêm code sau:
Mã:
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function MessageBoxW Lib "user32" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long


Function MsgBoxUni(ByVal PromptUni As Variant, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal TitleUni As Variant = vbNullString) As VbMsgBoxResult
'Function MsgBoxUni(ByVal PromptUni As Variant, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal TitleUni As Variant, Optional HelpFile, Optional Context) As VbMsgBoxResult
'BStrMsg,BStrTitle : La chuoi Unicode
    Dim BStrMsg, BStrTitle
    'Hàm StrConv Chuyen chuoi ve ma Unicode
    BStrMsg = StrConv(PromptUni, vbUnicode)
    BStrTitle = StrConv(TitleUni, vbUnicode)
    
    MsgBoxUni = MessageBoxW(GetActiveWindow, BStrMsg, BStrTitle, Buttons)
End Function
Trong sự kiện Private Sub UserForm_Initialize()
Bạn thêm code như sau:
Mã:
Private Sub UserForm_Initialize()
Dim Rng(), LastRow As Long, i As Long
    LastRow = Worksheets("Ngaydacbiet").range("A65536").End(xlUp).Row
    Rng = Worksheets("Ngaydacbiet").range("A6:H" & LastRow).Value
    With FrmSinhNhat
        .LtBSinhnhat.ColumnCount = 8
        .LtBSinhnhat.ColumnWidths = ("0,100,270,70,0,0,0,70")
        .LtBSinhnhat.List = Rng
        .CbbThongbao.List = range([I1], [I1].End(4)).Value
        .TxtSoluongnguoi.Value = range("F2")
        .TxtSoluongCan.Value = range("F3")
    End With
[COLOR=#ff0000] For i = 9 To range("Q9").End(xlDown).Row[/COLOR]
[COLOR=#ff0000]     MsgBoxUni range("L" & i).Value, , range("Q" & i).Value[/COLOR]
[COLOR=#ff0000] Next i[/COLOR]
End Sub
Dòng chữ màu đỏ là mình mới thêm vào.
 
Upvote 0
Cám ơn bác nhiều, cho em hỏi thêm mình muốn chặn vòng lặp For này khi dữ liệu tại L9:Q9 trở xuống ko có dữ liệu. Để tránh trường hợp khi không có dữ liệu nó vẫn hiện msgbox.
 
Upvote 0
Cám ơn bác nhiều, cho em hỏi thêm mình muốn chặn vòng lặp For này khi dữ liệu tại L9:Q9 trở xuống ko có dữ liệu. Để tránh trường hợp khi không có dữ liệu nó vẫn hiện msgbox.
Cài điều kiện trước khi hiển thị msgbox như sau:
For i = 9 To range("Q9").End(xlDown).Row
IF range("L" & i).Value<>"" then MsgBoxUni range("L" & i).Value, , range("Q" & i).Value
Next i
 
Upvote 0
Nhờ bác xem giúp đoạn này:
Với trường hợp chưa có dữ liệu lọc em cho thông báo dựa trên bảng dữ liệu nguồn luôn nhưng sao không được, bác xem giúp với.
Private Sub UserForm_Initialize()Dim Rng(), LastRow As Long, i As Long
LastRow = Worksheets("Ngaydacbiet").range("A65536").End(xlUp).Row
Rng = Worksheets("Ngaydacbiet").range("A6:H" & LastRow).Value
With FrmSinhNhat
.LtBSinhnhat.ColumnCount = 8
.LtBSinhnhat.ColumnWidths = ("0,100,270,70,0,0,0,70")
.LtBSinhnhat.List = Rng
.CbbThongbao.List = range([I1], [I1].End(4)).Value
.TxtSoluongnguoi.Value = range("F2")
.TxtSoluongCan.Value = range("F3")
End With
Sheets("ngaydacbiet").Select
For i = 6 To range("H6").End(xlDown).Row
If range("H" & i).Value = range("I2").Value Then MsgBoxUni range("C" & i).Value, , range("H" & i).Value
Next i
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom