Nhờ AE Sửa Code Nhập Đúng Hàng Trong Form Nhập Liệu (2 người xem)

  • Thread starter Thread starter woonbin
  • Ngày gửi Ngày gửi

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

woonbin

Thành viên mới
Tham gia
1/12/10
Bài viết
2
Được thích
2
Mình có gặp vấn đề khi nhập liệu từ Form VBA vào các dòng trong Excel nhờ anh em giúp đỡ.
Vì cột Mã Khách hàng hơi rườm rà khi mình muốn dạng vừa ký tự vừa có số ngày tháng năm và số thứ tự
Ví Dụ: NH141202001 (141202 là 02/12/2014, 001 là là số thứ tự và sẽ +1 ở hàng tiếp theo) nên mình làm công thức Mã KH trong excel là:
PHP:
=IF(LEN(A1)>0,"GB"& MID(TEXT(B1,"dd/mm/yyyy"),9,2)& MID(TEXT(B1,"dd/mm/yyyy"),4,2)& MID(TEXT(B1,"dd/mm/yyyy"),1,2)&TEXT(A1,"000"),IF(C1="",""))
và mình kéo xuống áp dụng cho những hàng phía dưới.

Khi nhập từ Form vào thì nó lại nhảy xuống ô cuối mà không bị dính công thức trên.
Vậy làm cách nào khi nếu hàng đó trống thì ta sẽ nhập vào hàng đó chứ không phải nhập vào hàng không có công thức Mã Khách Hàng.
Xin anh em chỉ giúp.
Hoặc có thể chỉ mình code tự động sinh mã khách hàng trên trong VBA không. Cám ơn nhiều..!

Đoạn code mình viết:

PHP:
Private Sub cmdNhapLieu_Click()
Dim RowCount As Long
Dim ctl As Control' 

If Me.cbxhang.Value = "" Then
MsgBox "Chua nhap Hãng.", vbExclamation, "Nhap lieu"
Me.cbxhang.SetFocus
Exit Sub
End If
If Me.txthvt.Value = "" ThenMsgBox "Chua nhap Tên KH.", vbExclamation, "Nhap lieu"
Me.txthvt.SetFocus
Exit SubEnd If
If Me.cbxcode.Value = "" ThenMsgBox "Chua nhap CODE.", vbExclamation, "Nhap lieu"
Me.cbxcode.SetFocus
Exit Sub
End If
'Write data to worksheet

RowCount = Worksheets("Nhap lieu").Range("A4").CurrentRegion.Rows.Count
With Worksheets("Nhap lieu").Range("A4")
.Offset(RowCount, 2).Value = Me.cbxhang.Value
.Offset(RowCount, 4).Value = Me.cbxcode.Value
.Offset(RowCount, 5).Value = Me.txthvt.Value
End WithEnd Sub
 
Lần chỉnh sửa cuối:
Mình có gặp vấn đề khi nhập liệu từ Form VBA vào các dòng trong Excel nhờ anh em giúp đỡ.
Vì cột Mã Khách hàng hơi rườm rà khi mình muốn dạng vừa ký tự vừa có số ngày tháng năm và số thứ tự
Ví Dụ: NH141202001 (141202 là 02/12/2014, 001 là là số thứ tự và sẽ +1 ở hàng tiếp theo) nên mình làm công thức Mã KH trong excel là:
PHP:
=IF(LEN(A1)>0,"GB"& MID(TEXT(B1,"dd/mm/yyyy"),9,2)& MID(TEXT(B1,"dd/mm/yyyy"),4,2)& MID(TEXT(B1,"dd/mm/yyyy"),1,2)&TEXT(A1,"000"),IF(C1="",""))
và mình kéo xuống áp dụng cho những hàng phía dưới.

Khi nhập từ Form vào thì nó lại nhảy xuống ô cuối mà không bị dính công thức trên.
Vậy làm cách nào khi nếu hàng đó trống thì ta sẽ nhập vào hàng đó chứ không phải nhập vào hàng không có công thức Mã Khách Hàng.
Xin anh em chỉ giúp.
Hoặc có thể chỉ mình code tự động sinh mã khách hàng trên trong VBA không. Cám ơn nhiều..!

Đoạn code mình viết:

PHP:
Private Sub cmdNhapLieu_Click()
Dim RowCount As Long
Dim ctl As Control' 

If Me.cbxhang.Value = "" Then
MsgBox "Chua nhap Hãng.", vbExclamation, "Nhap lieu"
Me.cbxhang.SetFocus
Exit Sub
End If
If Me.txthvt.Value = "" ThenMsgBox "Chua nhap Tên KH.", vbExclamation, "Nhap lieu"
Me.txthvt.SetFocus
Exit SubEnd If
If Me.cbxcode.Value = "" ThenMsgBox "Chua nhap CODE.", vbExclamation, "Nhap lieu"
Me.cbxcode.SetFocus
Exit Sub
End If
'Write data to worksheet

RowCount = Worksheets("Nhap lieu").Range("A4").CurrentRegion.Rows.Count
With Worksheets("Nhap lieu").Range("A4")
.Offset(RowCount, 2).Value = Me.cbxhang.Value
.Offset(RowCount, 4).Value = Me.cbxcode.Value
.Offset(RowCount, 5).Value = Me.txthvt.Value
End With
End Sub

Đoán đoán và sửa thử thế này
PHP:
With Worksheets("Nhap lieu").Range("C65536").End(3)(2)
    .Value = Me.cbxhang.Value
    .Offset(, 2).Value = Me.cbxcode.Value
   .Offset(, 3).Value = Me.txthvt.Value
End With
 
Upvote 0
Cám ơn anh nhiều..! Ok rồi anh. Cuộc sống là những ngày vui khi xung quanh ta gặp được nhiều người thân thiện và sẵn sàng giúp đỡ người khác. Love GPE..!
 
Upvote 0

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

Back
Top Bottom