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

cuongberry

Thành viên mới
Tham gia ngày
21 Tháng một 2019
Bài viết
9
Được thích
5
Điểm
15
Tuổi
28
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
 

ducdoom

Thành viên mới
Tham gia ngày
24 Tháng mười hai 2018
Bài viết
41
Được thích
37
Điểm
15
Tuổi
24
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
 

cuongberry

Thành viên mới
Tham gia ngày
21 Tháng một 2019
Bài viết
9
Được thích
5
Điểm
15
Tuổi
28
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á ạ
 

cuongberry

Thành viên mới
Tham gia ngày
21 Tháng một 2019
Bài viết
9
Được thích
5
Điểm
15
Tuổi
28
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 ạ
 

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
1,893
Được thích
1,646
Điểm
210
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
 

cuongberry

Thành viên mới
Tham gia ngày
21 Tháng một 2019
Bài viết
9
Được thích
5
Điểm
15
Tuổi
28
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:

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
1,893
Được thích
1,646
Điểm
210
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.
 

cuongberry

Thành viên mới
Tham gia ngày
21 Tháng một 2019
Bài viết
9
Được thích
5
Điểm
15
Tuổi
28
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

Lần chỉnh sửa cuối:

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
1,893
Được thích
1,646
Điểm
210
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à.
 
Top