Code Đánh STT

Trạng thái
Không mở trả lời sau này.

ThanhQuang1510

Yêu THVBA
Cho mình hỏi có đoạn code nào đánh STT bắt đầu Từ Cột 1, dòng A9
với điều kiện khi xóa dòng thì STT sẽ tự sắp xếp lại.
Thanks All
 

Euler

Administrator
Thành viên BQT
Bạn cho code này vào sheet cần đánh số thứ tự, nó sẽ bắt sự kiện trên sheet để đánh số thứ tự.
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i As Integer
    Dim rend As Integer
    rend = Cells(Rows.Count, 1).End(xlUp).Row
    If rend > 9 Then
        For i = 9 To rend Step 1
            Cells(i, 1).FormulaR1C1 = "=ROW()-8"
        Next i
    End If
End Sub
 
T

thanhphuongvip

Guest
Xin chào @Euler : Nếu đánh số thứ thự căn cứ theo dữ liệu phát sinh ở cột B thì code sẽ như thế nào, ví dụ:

Bạn cần đăng nhập để thấy đính kèm


Ghi chú thêm là dữ liệu phát sinh ở cột B có thể ngắt quãng chứ ko liên tục!

Xin cảm ơn!
 

Euler

Administrator
Thành viên BQT
Dạ, muốn vậy thì anh bắt sự kiện cho cột B thôi.
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 2 Then 'Nếu anh tác động vào cột B thì làm công việc ở dưới
        MsgBox "OK"  'Anh thay dòng code này bằng đoạn code đánh số thứ tự
    End If
End Sub
 
T

thanhphuongvip

Guest
If Target.Column = 2 Then 'Nếu anh tác động vào cột B thì làm công việc ở dưới
Code như này ko đc rồi, vì mình chưa chọn sản phẩm, mới click vào ô là nó đã nhảy như thế này
Bạn cần đăng nhập để thấy đính kèm


Ý mình muốn là khi bán hàng, cột B có chọn sản phẩm thì nó mới đánh số thứ tự (như hình ở post trên). Và dữ liệu cột B có thể ngắt quãng (mục đích ngắt quãng như vậy để dễ nhìn nếu xuất hàng một lần nhiều nhóm hàng giúp khách hàng dễ xem).
 

Euler

Administrator
Thành viên BQT
Anh muốn như thế nào thì code thôi ạ. Anh chưa chọn thì tức là cell đó vẫn còn là rỗng.
Anh thêm điều kiện cho nó:
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 2 and Target.Value <> "" Then 'Nếu anh tác động vào cột B và cells đó khác rỗng thì làm công việc ở dưới
        MsgBox "OK"  'Anh thay dòng code này bằng đoạn code đánh số thứ tự
    End If
End Sub
 
T

thanhphuongvip

Guest
@Euler : Em copy vào sheet thử nó chạy đc ko, sao a thử nó ko đc.
Ah mà nó còn báo lỗi khi chúng ta bôi đen nhiều ô trên cột B.
 

Euler

Administrator
Thành viên BQT
Vậy anh phải thiết kế. Với những sự kiện nào thì anh muốn làm việc. Với thao tác nào thì anh không muốn nó can thiệp. Mình có thể can thiệp vào tất cả những cái đó để code theo ý mình ạ.
Nếu có ý tưởng khác, anh hãy trình bày ra topic khác được không ạ. Hãy nói rõ mình muốn gì, và những gì không muốn xảy ra ạ.
Nếu đơn giản là không muốn nhìn thấy lỗi, thì cứ On Error Resume Next, cho vào đầu chương trình.
Em nãy giờ vẫn chưa hiểu anh muốn gì đâu ạ.
 

tuhocvba

Administrator
Thành viên BQT
Code của Euler đưa ra đã đáp ứng yêu cầu của topic này. Chúng tôi đang chờ phản hồi của tác giả topic, sau đó sẽ close topic.
Nếu có ý kiến nào khác, các bạn hãy lập topic mới. Tuân thủ qui định diễn đàn, không lan man, nếu có ý tưởng khác, phải lập topic mới.
_________________________
Ngày 15/8/2019
Bạn cần đăng nhập để thấy hình ảnh

Trong vòng 7 ngày liên tục, chủ topic không phản hồi là code thỏa mãn yêu cầu hay chưa.
Code đã có comment. Chúng tôi thử code và thấy đã đáp ứng yêu cầu. Vậy topic này sẽ khóa.
 
Trạng thái
Không mở trả lời sau này.
Top