1. Đầu tiên, xin phép diễn đàn, cho phép tôi hỗ trợ code lần cuối. Ngay sau đó, topic này có thể close, không cần biết là chủ topic có đồng ý hay không. Hiện tại các vấn đề thảo luận đã đi quá xa so với mục đích ban đầu của tác giả.
2. Nhắn tới
@phamthach : Đầu tiên, khi có vấn đề phát sinh, bạn nên nói:
"
Xin lỗi mọi người. Vì có việc phát sinh, em có thể nhờ mọi người một lần nữa không ạ?"
Đầu tiên, bạn nên ý thức việc nhờ vả lần này là cực kỳ gây phiền hà cho người khác bởi các lý do sau:
1. Do bạn thiết kế chưa tốt, dẫn tới việc nhờ vả lặp lại -> Nếu bạn làm ở các công ty, mà nhờ vả đồng nghiệp thế này, họ có quyền từ chối.
2. Vì bạn mới học, cho nên nếu được hỏi "Bạn chưa thiết kế trước khi code à" thì bạn có thể trả lời:
Dạ, em nghĩ tới đâu thì làm tới đó ạ. -> Đây là vấn đề thường gặp với tất cả mọi người, tuy nhiên bạn nên cải thiện.
Nghe câu trả lời đó, thì dù có giận, rồi mọi người cũng giúp. Còn theo cách trả lời như bạn thì người ta không còn nhìn thấy thiện chí ấy.
Chú ý: Dù thiết kế thì sau đó vẫn có thể có thiếu sót. Do đó, nếu cần nhờ vả, câu đầu tiên nên là:
Xin lỗi mọi người.
Nhìn thấy thiện chí đó, thì mọi người dù có trách mắng, nhưng rồi cũng giúp. Tôi mong bạn sẽ làm tốt hơn ở các lần sau.
Bạn có nghĩ việc comment từng dòng code có mất thời gian không? Tại sao mọi người phải mất thời gian làm điều ấy, vì cái gì? Do đó mọi người sẽ rất vui nếu việc làm tốn công tốn sức đó có chút ý nghĩa-bạn hiểu được và áp dụng được cho các bài toán tương tự.
Và nếu mọi người có
tức giận, cũng là điều dễ hiểu, vì đã đặt
kỳ vọng rằng bạn đã hiểu những gì diễn đàn hỗ trợ bạn, nhưng thực tế thì lại không được như vậy. Hiểu được điều này, bạn sẽ thấy anh chị em thật lòng mong mỏi bạn
trưởng thành biết nhường nào.
Dưới đây là code:
Sub tuhocvba0812()
Dim ngay_tem As String
Dim tenhang_tem As String
Dim soluong_tem As String
Dim rend_data_tem As Integer 'Dong cuoi cua sheet DATA
Dim arr_tem As Variant
Dim i As Long
Dim mahang_tem As String
Dim dv_tem As String
Dim flag_tem As Boolean 'Tim thay ten hang tren sheet DATA
Dim sh As String
Const rtile_data_tem As Byte = 6 'Dong tieu de cua sheet DATA
ngay_tem = UserForm1.TextBox1.Text
tenhang_tem = UserForm1.ComboBox1.Text
soluong_tem = UserForm1.TextBox2.Text
sh = ActiveSheet.Name 'Lay ten sheet hien hanh: Sheet 2
'Kiem tra
If ngay_tem = "" Then
MsgBox "Chua nhap ngay"
Exit Sub
End If
If tenhang_tem = "" Then
MsgBox "Chua nhap ten hang"
Exit Sub
End If
If soluong_tem = "" Then
MsgBox "Chua nhap so luong"
Exit Sub
End If
If IsNumeric(soluong_tem) = False Then
MsgBox "Ban phai nhap so luong la CHU SO" 'Ex: 1,2,3,..
Exit Sub
End If
'nap du lieu sheet DATA
ThisWorkbook.Sheets("DATA").Activate
rend_data_tem = ThisWorkbook.Sheets("DATA").Cells(Rows.Count, 1).End(xlUp).Row
If rend_data_tem <= rtile_data_tem Then
MsgBox "sheet DATA khong co du lieu. Vui long kiem tra lai"
Exit Sub
End If
arr_tem = ThisWorkbook.Sheets("DATA").Range(Cells(rtile_data_tem + 1, 1), Cells(rend_data_tem, 3)).Value 'Nap du lieu sheet DATA vao mang
flag_tem = False
For i = LBound(arr_tem, 1) To UBound(arr_tem, 1) Step 1
If CStr(arr_tem(i, 2)) = tenhang_tem Then 'tim theo ten hang
mahang_tem = CStr(arr_tem(i, 1)) 'lay ma hang
dv_tem = CStr(arr_tem(i, 3)) 'Lay DVT
flag_tem = True
Exit For
End If
Next i
If flag_tem = False Then
MsgBox "Khong tim thay ten hang tren sheet DATA. Vui long kiem tra lai"
Exit Sub 'Ket thuc chuong trinh
End If
'neu khong co van de gi thi ghi thong tin
ThisWorkbook.Sheets(sh).Activate
rend_data_tem = ThisWorkbook.Sheets(sh).Cells(Rows.Count, 1).End(xlUp).Row + 1 'Lay dong cuoi + 1
'Ghi thong tin:
'13/8/2019 sua code
With ThisWorkbook.Sheets(sh)
.Cells(rend_data_tem, 2) = ngay_tem 'ngay
.Cells(rend_data_tem, 3) = mahang_tem 'ma hang
.Cells(rend_data_tem, 5) = dv_tem 'DVT
.Cells(rend_data_tem, 6) = soluong_tem 'So luong
.Cells(rend_data_tem, 4) = tenhang_tem 'Tenhang
'So thu tu
For i = rtile_data_tem + 1 To rend_data_tem Step 1
.Cells(i, 1) = i - rtile_data_tem
Next i
End With
End Sub
Các dòng code 64~68: vị trí cột tăng lên 1 so với trước vì bạn đã thay đổi định dạng sheet 2, các cột đã bị xê dịch. Tôi đã sửa.
Dòng code sau đó là đánh số thứ tự. Tôi đã bổ sung.
Bạn cần đăng nhập để thấy hình ảnh