[Trợ giúp] Lỗi hiện thị ngày tháng trong Forms (1 người xem)

Liên hệ QC

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

hmgiang2009

Zalo: 0935237557
Tham gia
16/7/11
Bài viết
77
Được thích
9
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Thợ đụng
Xin chào mọi người!
Mình xin được giúp đở về cái file này với
- Trong file mình có tạo 1 cái Forms có chứa textbox là ngày tháng, mà kết quả là hiện thị ra ở cột B, nhưng k biết là nó bị lỗi gì, mà ở cột công thức cột I có chứa hàm Vlookup lại không cho ra kết quả gần đúng được, xin mọi người xem giúp.
Xin cảm ơn rất nhiều!!!
 

File đính kèm

Textbox với date là ngán tới cổ... (có vài ô thế sao không nhập luôn ở bảng tính cho dễ)

Thay vào các sub đã có.

Mã:
Dim Ngay As Date 'Để ở trên cùng.
Private Sub btnDieuchinh_Click()
Dim EndR As Long
With Sheets("Thanh toan")
EndR = .Range("B" & Rows.Count).End(xlUp).Row
    .Range("B" & EndR + 1) = Ngay
    .Range("C" & EndR + 1) = txtGiaxang.Text
    .Range("E" & EndR + 1) = txtGiadizen.Text
End With
Dim ctr As Control
For Each ctr In Me.Controls
    If TypeName(ctr) = "TextBox" Then
        ctr.Text = ""
        End If
Next ctr
btnDong.SetFocus
End Sub

Private Sub txtNgaydieuchinh_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Mid(txtNgaydieuchinh.Value, 4, 2) > 12 Then
    MsgBox "Nhâp sai Format: dd/mm/yyyy !", vbCritical, "Thông báo"
    txtNgaydieuchinh.Value = vbNullString
    txtNgaydieuchinh.SetFocus
    Exit Sub
End If
Ngay = DateSerial(Year(Date), Month(Date), Day(Date))
txtNgaydieuchinh.Value = Format(txtNgaydieuchinh.Value, "dd/mm/yyyy")
Ngay = txtNgaydieuchinh.Value
End Sub
 
Upvote 0
Textbox với date là ngán tới cổ... (có vài ô thế sao không nhập luôn ở bảng tính cho dễ)

Thay vào các sub đã có.

Mã:
Dim Ngay As Date 'Để ở trên cùng.
Private Sub btnDieuchinh_Click()
Dim EndR As Long
With Sheets("Thanh toan")
EndR = .Range("B" & Rows.Count).End(xlUp).Row
    .Range("B" & EndR + 1) = Ngay
    .Range("C" & EndR + 1) = txtGiaxang.Text
    .Range("E" & EndR + 1) = txtGiadizen.Text
End With
Dim ctr As Control
For Each ctr In Me.Controls
    If TypeName(ctr) = "TextBox" Then
        ctr.Text = ""
        End If
Next ctr
btnDong.SetFocus
End Sub

Private Sub txtNgaydieuchinh_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Mid(txtNgaydieuchinh.Value, 4, 2) > 12 Then
    MsgBox "Nhâp sai Format: dd/mm/yyyy !", vbCritical, "Thông báo"
    txtNgaydieuchinh.Value = vbNullString
    txtNgaydieuchinh.SetFocus
    Exit Sub
End If
Ngay = DateSerial(Year(Date), Month(Date), Day(Date))
txtNgaydieuchinh.Value = Format(txtNgaydieuchinh.Value, "dd/mm/yyyy")
Ngay = txtNgaydieuchinh.Value
End Sub
Xin cảm ơn bạn befaint rất nhiều!
Hà hà, tại vì mới mày mò châm cứu được mấy cái vụ code, VBA, Form nên thử xuất chiêu thử đó mà bạn
Xin cảm ơn bạn nhé
 
Upvote 0
Textbox với date là ngán tới cổ... (có vài ô thế sao không nhập luôn ở bảng tính cho dễ)

Thay vào các sub đã có.

Mã:
Dim Ngay As Date 'Để ở trên cùng.
Private Sub btnDieuchinh_Click()
Dim EndR As Long
With Sheets("Thanh toan")
EndR = .Range("B" & Rows.Count).End(xlUp).Row
    .Range("B" & EndR + 1) = Ngay
    .Range("C" & EndR + 1) = txtGiaxang.Text
    .Range("E" & EndR + 1) = txtGiadizen.Text
End With
Dim ctr As Control
For Each ctr In Me.Controls
    If TypeName(ctr) = "TextBox" Then
        ctr.Text = ""
        End If
Next ctr
btnDong.SetFocus
End Sub

Private Sub txtNgaydieuchinh_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Mid(txtNgaydieuchinh.Value, 4, 2) > 12 Then
    MsgBox "Nhâp sai Format: dd/mm/yyyy !", vbCritical, "Thông báo"
    txtNgaydieuchinh.Value = vbNullString
    txtNgaydieuchinh.SetFocus
    Exit Sub
End If
[COLOR=#ff0000]Ngay = DateSerial(Year(Date), Month(Date), Day(Date))[/COLOR]
txtNgaydieuchinh.Value = Format(txtNgaydieuchinh.Value, "dd/mm/yyyy")
Ngay = txtNgaydieuchinh.Value
End Sub
Tôi thắc mắc chỗ màu đỏ, nó khác gì với Ngay = Date vậy bạn?
 
Upvote 0
Nếu là mình, mình sẽ làm mọi việc là vầy:

Tại TxtDieuChinh bằng cách nào đó hướng dẫn người nhập chỉ chọn 1 trong 2 trường hợp nhập:

1./ "DD/MM/yyyy"

2./ "MM/DD/yyyy"

Sau đó viết hàm người dùng để biến chuỗi nhập vô sang số liệu ngày-tháng-năm dạng "MM/DD/yyyy"; Còn trên trang tính chứa dữ liệu này ta định dạng sang hệ Fáp theo thói quen người Việt cho dễ nhìn.

Lúc đó câu lệnh trong macro
Mã:
.Range("B" & EndR + 1) = TxtNgaydieuchinh.Text
sẽ chuyển là
PHP:
.Range("B" & EndR + 1) = TextToDate(Me!TxtNgaydieuchinh.Text)

:
--=--
http://www.giaiphapexcel.com/forum/showthread.php?113456-Xin-Gi%C3%BAp-M%C3%ACnh-T%E1%BA%A1o-From-Nh%E1%BA%ADp-Li%E1%BB%87u-V%E1%BB%9Bi-D%E1%BA%A1ng-N%C3%A0y&p=711391#post711391--=--
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom