Code điền số thứ tự trong bảng tính

Liên hệ QC

cuongberry

Thành viên mới
Tham gia
21/1/19
Bài viết
14
Được thích
10
Cháu chào các bác.Cháu mới tìm hiểu về vba mong các bác chỉ bảo thêm. Cháu đang làm file tạo hóa đơn bán hàng cho cty ,mà đang mắc phải chỗ điền số thứ tự tự động trong bảng,cháu có kiếm được code điền số thứ tự tự động,nếu trong bảng dữ liệu nhiều hơn 1 dòng thì điền số ok rồi,mà nếu trong bảng chỉ có 1 sản phẩm,tức là chỉ có 1 dòng thì nó lại báo lỗi.Vậy cháu đăng bài lên đây mong được các bác chỉ thêm để sửa code cho hoàn chỉnh.Cháu cảm ơn !
Set SrcRng = Range([C2], [C65536].End(xlUp)) arr = SrcRng.Value For i = 1 To UBound(arr, 1) If arr(i, 1) <> "" Then n = n + 1 arr(i, 1) = n End If Next SrcRng.Offset(, -2).Value = arr
 
Cháu chào các bác.Cháu mới tìm hiểu về vba mong các bác chỉ bảo thêm. Cháu đang làm file tạo hóa đơn bán hàng cho cty ,mà đang mắc phải chỗ điền số thứ tự tự động trong bảng,cháu có kiếm được code điền số thứ tự tự động,nếu trong bảng dữ liệu nhiều hơn 1 dòng thì điền số ok rồi,mà nếu trong bảng chỉ có 1 sản phẩm,tức là chỉ có 1 dòng thì nó lại báo lỗi.Vậy cháu đăng bài lên đây mong được các bác chỉ thêm để sửa code cho hoàn chỉnh.Cháu cảm ơn !
Set SrcRng = Range([C2], [C65536].End(xlUp)) arr = SrcRng.Value For i = 1 To UBound(arr, 1) If arr(i, 1) <> "" Then n = n + 1 arr(i, 1) = n End If Next SrcRng.Offset(, -2).Value = arr
bạn thêm câu lệnh kiểm tra nếu bảng chỉ có 1 sản phẩm là ok
Mã:
Set srcrng = Range([C2], [C65536].End(xlUp))

If srcrng.Rows.Count = 1 Then
    Range("A2").Value2 = 1
    Exit Sub
End If

arr = srcrng.Value
For i = 1 To UBound(arr, 1)
If arr(i, 1) <> "" Then
n = n + 1
arr(i, 1) = n
End If
Next
srcrng.Offset(, -2).Value = arr

End Sub
 
Upvote 0
bạn thêm câu lệnh kiểm tra nếu bảng chỉ có 1 sản phẩm là ok
Mã:
Set srcrng = Range([C2], [C65536].End(xlUp))

If srcrng.Rows.Count = 1 Then
    Range("A2").Value2 = 1
    Exit Sub
End If

arr = srcrng.Value
For i = 1 To UBound(arr, 1)
If arr(i, 1) <> "" Then
n = n + 1
arr(i, 1) = n
End If
Next
srcrng.Offset(, -2).Value = arr

End Sub

cháu cảm ơn bác, lơ mơ tìm hiểu về vba nên nhiều cái còn mù tịt quá ạ
 
Upvote 0
cháu cảm ơn bác, lơ mơ tìm hiểu về vba nên nhiều cái còn mù tịt quá ạ
bác ơi, em dùng cái code đấy của bác ở đầu sub, sau khi sửa thì đoạn code sau đấy của e không chạy nữa, sau code điền dữ liệu là đoạn code em copy bảng tính đấy và tạo bảng tính mới mà e thấy nó không chạy,có phải đoạn code trên có câu nào dừng những code sau đấy không ạ
 
Upvote 0
bác ơi, em dùng cái code đấy của bác ở đầu sub, sau khi sửa thì đoạn code sau đấy của e không chạy nữa, sau code điền dữ liệu là đoạn code em copy bảng tính đấy và tạo bảng tính mới mà e thấy nó không chạy,có phải đoạn code trên có câu nào dừng những code sau đấy không ạ
Bạn sửa như thế này xem.Mà đã dùng code thì viết luôn cả bảng tính lại viết mỗi cái số thứ tự phí quá.
Mã:
Set srcrng = Range([C2], [C65536].End(xlUp))
If srcrng.Rows.Count = 1 Then
    Range("A2").Value2 = 1
Else
arr = srcrng.Value
For i = 1 To UBound(arr, 1)
If arr(i, 1) <> "" Then
n = n + 1
arr(i, 1) = n
End If
Next
srcrng.Offset(, -2).Value = arr
End If
End Sub
 
Upvote 0
Bạn sửa như thế này xem.Mà đã dùng code thì viết luôn cả bảng tính lại viết mỗi cái số thứ tự phí quá.
Mã:
Set srcrng = Range([C2], [C65536].End(xlUp))
If srcrng.Rows.Count = 1 Then
    Range("A2").Value2 = 1
Else
arr = srcrng.Value
For i = 1 To UBound(arr, 1)
If arr(i, 1) <> "" Then
n = n + 1
arr(i, 1) = n
End If
Next
srcrng.Offset(, -2).Value = arr
End If
End Sub
Em cảm ơn bác,cái đoạn code này để đánh stt thôi ạ, còn sau đấy là e tạo sheet mới,copy dữ liệu ở bảng data có stt ấy sang sheet mới này bác ạ
Bài đã được tự động gộp:

mà các bác ơi, nếu bảng dữ liệu data thì copy bảng đấy với 1 dòng sản phẩm thì code như nào mà có nhiều hơn 1 sản phẩm thì copy như nào,cái này e thử dùng lệnh if mà trình độ hạn chế quá ,nó không chạy được . Sau khi sửa code stt thì nhiều hơn 1 sản phẩm thì code chạy ok mà có 1 sản phẩm là nó không thèm chạy nữa mới đau chứ. :(
 
Lần chỉnh sửa cuối:
Upvote 0
Em cảm ơn bác,cái đoạn code này để đánh stt thôi ạ, còn sau đấy là e tạo sheet mới,copy dữ liệu ở bảng data có stt ấy sang sheet mới này bác ạ
Bài đã được tự động gộp:

mà các bác ơi, nếu bảng dữ liệu data thì copy bảng đấy với 1 dòng sản phẩm thì code như nào mà có nhiều hơn 1 sản phẩm thì copy như nào,cái này e thử dùng lệnh if mà trình độ hạn chế quá ,nó không chạy được . Sau khi sửa code stt thì nhiều hơn 1 sản phẩm thì code chạy ok mà có 1 sản phẩm là nó không thèm chạy nữa mới đau chứ. :(
Bạn cho cái file lên nhé.Và viết trên file.
 
Upvote 0
file của e đây,mỗi lần chọn được sản phẩm là e ấn update để nó cập nhập vào bảng data, chọn xong thì e ấn tạo file để nó tạo sheet mới với tên sheet là tên khách hàng, mà khổ cái nếu bảng data nhiều hơn 1 sản phẩm là tạo ok rồi mà 1 cái là chịu chết.Mong bác chỉ thêm, em mò mẫm mấy ngày nay để tạo cái form này :(
Bài đã được tự động gộp:

em đang nghi e bị sai đoạn copy bảng dữ liệu data,chính là cái đoạn này trong sub taofile
' copy lai du lieu bang data Sheets("Data").Select If SrcRng.Rows.Count = 1 Then Range("A2:G2").Select Selection.copy End If If SrcRng.Rows.Count > 1 Then Range("A2:G" & dong_cuoi_data).Select Selection.copy End If
 

File đính kèm

  • File Kun.xlsm
    404 KB · Đọc: 5
Lần chỉnh sửa cuối:
Upvote 0
file của e đây,mỗi lần chọn được sản phẩm là e ấn update để nó cập nhập vào bảng data, chọn xong thì e ấn tạo file để nó tạo sheet mới với tên sheet là tên khách hàng, mà khổ cái nếu bảng data nhiều hơn 1 sản phẩm là tạo ok rồi mà 1 cái là chịu chết.Mong bác chỉ thêm, em mò mẫm mấy ngày nay để tạo cái form này :(
Bài đã được tự động gộp:

em đang nghi e bị sai đoạn copy bảng dữ liệu data,chính là cái đoạn này trong sub taofile
' copy lai du lieu bang data Sheets("Data").Select If SrcRng.Rows.Count = 1 Then Range("A2:G2").Select Selection.copy End If If SrcRng.Rows.Count > 1 Then Range("A2:G" & dong_cuoi_data).Select Selection.copy End If
Bạn sửa theo code của mình là được mà.
 
Upvote 0
Web KT
Back
Top Bottom