thierry henry
Thành viên mới
- Tham gia
- 11/6/18
- Bài viết
- 49
- Được thích
- 4
CHÀO TẤT CẢ MỌI NGƯỜI ! THEO NHƯ 1 BÁC TRÊN DIỄN ĐÀN https://tuhocvba.net/ CHỈ CÁCH " Code Đánh Số Thứ Tự Theo Dữ Liệu Phát Sinh" CÓ ĐỊA CHỈ LÀ https://tuhocvba.net/threads/code-danh-so-thu-tu-theo-du-lieu-phat-sinh.183/ THÌ
- tại sự kiện worksheet change ta xác định vùng thay đổi sẽ là cột B,
- lặp từ ô A5 cho đến last row của cột B
- dùng biến STT để lưu giá trị số thứ tự (bắt đầu từ 1), Nếu ô B mà khác rỗng thì điền giá trị STT vào ô A =>rồi tăng STT lên 1
- sẽ luôn luôn phải xoá tất cả STT cũ khi cập nhật dữ liệu mới
VÀ ĐOẠN CODE LÀ :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rangeToChange As Range
Set rangeToChange = Range("B:B")
Dim i As Integer, STT As Integer
STT = 1
If Not Application.Intersect(rangeToChange, Range(Target.Address)) Is Nothing Then 'nếu ô B đựoc điền dữ liệu
Range("A5:A" & Rows.Count).ClearContents 'Xoá STT cũ đi
For i = 5 To Range("B" & Rows.Count).End(xlUp).Row 'lặp từ dòng 2 đến dòng cuối
If Range("B" & i).Value <> "" Then 'nếu B khác rỗng
Range("A" & i).Value2 = STT 'điền số thứ tự
STT = STT + 1 'tăng STT lên 1 để cho ô kế tiếp
End If
Next i
End If
End Sub
SAU ĐẤY EM KẾT HỢP VỚI MỘT ĐOẠN CODE MÀ EM SƯU TẦM ĐƯỢC ( Ở MODULE 1 )ĐỂ TỰ ĐỘNG ĐÁNH MÃ VẬT TƯ . KHI THỬ NGHIỆM ĐÁNH TỪNG DỮ LIỆU 1 VÀO C5 THÌ CÙNG 1 LÚC B5 NHẢY MÃ VẬT TƯ VÀ A5 NHẢY SỐ THỨ TỰ , SAU ĐÓ XÓA DỮ LIỆU CỘT C THÌ ĐỒNG THỜI CONTENT Ở CỘT A VÀ B BIẾN MẤT . CÓ THỂ NÓI LÀ RẤT ỔN , NHƯNG KHI EM COPY PASTE MỘT LƯỢNG LỚN DỮ LIỆU VÀO CỘT C ( TỪ C5 ĐẾN C 12 ) THÌ NÓ BÁO LỖI MISMACTH HAY MÃ VẬT TƯ NHẢY SAI . ĐÂY LÀ FILE CỦA EM MONG MẤY BÁC GIÚP Ạ . EM XIN CẢM ƠN Ạ
- tại sự kiện worksheet change ta xác định vùng thay đổi sẽ là cột B,
- lặp từ ô A5 cho đến last row của cột B
- dùng biến STT để lưu giá trị số thứ tự (bắt đầu từ 1), Nếu ô B mà khác rỗng thì điền giá trị STT vào ô A =>rồi tăng STT lên 1
- sẽ luôn luôn phải xoá tất cả STT cũ khi cập nhật dữ liệu mới
VÀ ĐOẠN CODE LÀ :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rangeToChange As Range
Set rangeToChange = Range("B:B")
Dim i As Integer, STT As Integer
STT = 1
If Not Application.Intersect(rangeToChange, Range(Target.Address)) Is Nothing Then 'nếu ô B đựoc điền dữ liệu
Range("A5:A" & Rows.Count).ClearContents 'Xoá STT cũ đi
For i = 5 To Range("B" & Rows.Count).End(xlUp).Row 'lặp từ dòng 2 đến dòng cuối
If Range("B" & i).Value <> "" Then 'nếu B khác rỗng
Range("A" & i).Value2 = STT 'điền số thứ tự
STT = STT + 1 'tăng STT lên 1 để cho ô kế tiếp
End If
Next i
End If
End Sub
SAU ĐẤY EM KẾT HỢP VỚI MỘT ĐOẠN CODE MÀ EM SƯU TẦM ĐƯỢC ( Ở MODULE 1 )ĐỂ TỰ ĐỘNG ĐÁNH MÃ VẬT TƯ . KHI THỬ NGHIỆM ĐÁNH TỪNG DỮ LIỆU 1 VÀO C5 THÌ CÙNG 1 LÚC B5 NHẢY MÃ VẬT TƯ VÀ A5 NHẢY SỐ THỨ TỰ , SAU ĐÓ XÓA DỮ LIỆU CỘT C THÌ ĐỒNG THỜI CONTENT Ở CỘT A VÀ B BIẾN MẤT . CÓ THỂ NÓI LÀ RẤT ỔN , NHƯNG KHI EM COPY PASTE MỘT LƯỢNG LỚN DỮ LIỆU VÀO CỘT C ( TỪ C5 ĐẾN C 12 ) THÌ NÓ BÁO LỖI MISMACTH HAY MÃ VẬT TƯ NHẢY SAI . ĐÂY LÀ FILE CỦA EM MONG MẤY BÁC GIÚP Ạ . EM XIN CẢM ƠN Ạ