Xin trợ giúp về đánh số TT

Liên hệ QC

longlt08

Thành viên thường trực
Tham gia
23/3/08
Bài viết
321
Được thích
400
Xin chào các anh chị GPE !
Nhờ mọi người viết giúp hàm đánh số TT (xin gửi file kèm theo). Đối với file có nhiều dữ liệu nếu đánh STT bằng tay dễ bị nhầm lẫn và không chính xác. Mong được giúp đỡ. Xin chân thành cảm ơn !
 

File đính kèm

Xin chào các anh chị GPE !
Nhờ mọi người viết giúp hàm đánh số TT (xin gửi file kèm theo). Đối với file có nhiều dữ liệu nếu đánh STT bằng tay dễ bị nhầm lẫn và không chính xác. Mong được giúp đỡ. Xin chân thành cảm ơn !
Xem file tôi không thể hiểu được quy tắc đánh số thứ tự. Dường như nó không theo một quy luật nào cả.
 
Upvote 0
Xem file tôi không thể hiểu được quy tắc đánh số thứ tự. Dường như nó không theo một quy luật nào cả.

Xin chào anh huuthang_bd !
File dữ liệu cần đánh số TT trên tôi trích từ bảng pivot table lọc theo đơn vị và công trình(Phần số TT la mã và STT chi tiết do tôi đánh thủ công).
Qui luật của đánh số TT như sau:
- Ở sheet2: mỗi mục số TT lamã là 1 mục chính, số TT chi tiết do đánh thủ công trong từng mục do pivot table lọc ra liên quan đến 1 bảng dữ liệu gốc dùng để cho pivot table (trong pivot table không có số TT). Tôi gửi anh file dữ liệu gốc anh xem giúp. Cảm ơn anh !
 
Upvote 0
Xin chào anh huuthang_bd !
File dữ liệu cần đánh số TT trên tôi trích từ bảng pivot table lọc theo đơn vị và công trình(Phần số TT la mã và STT chi tiết do tôi đánh thủ công).
Qui luật của đánh số TT như sau:
- Ở sheet2: mỗi mục số TT lamã là 1 mục chính, số TT chi tiết do đánh thủ công trong từng mục do pivot table lọc ra liên quan đến 1 bảng dữ liệu gốc dùng để cho pivot table (trong pivot table không có số TT). Tôi gửi anh file dữ liệu gốc anh xem giúp. Cảm ơn anh !
Không nói đến số La Mã. Số thứ tự chi tiết bạn tự đánh trong file đính kèm cũng không có quy tắc cụ thể.

Chưa thấy file đính kèm.
 
Upvote 0
Qui luật của đánh số TT như sau:
- Ở sheet2: mỗi mục số TT lamã là 1 mục chính, số TT chi tiết do đánh thủ công trong từng mục do pivot table lọc ra liên quan đến 1 bảng dữ liệu gốc dùng để cho pivot table (trong pivot table không có số TT). Tôi gửi anh file dữ liệu gốc anh xem giúp. Cảm ơn anh !
Theo cách hiểu của tôi thì là thế này, tuy nhiên trong file dữ liệu có vẻ chưa chuẩn, còn nếu đúng dữ liệu là như vậy thì e rằng không có quy luật nào cả.
 

File đính kèm

Upvote 0
Theo cách hiểu của tôi thì là thế này, tuy nhiên trong file dữ liệu có vẻ chưa chuẩn, còn nếu đúng dữ liệu là như vậy thì e rằng không có quy luật nào cả.

Với dữ liệu như vậy, công thức của Rollover79 tương đối hay.
Nếu dữ liệu có nhiều dòng nên đổi Sumproduct thành Countif,
Xin sửa lại (tại ô B3 file của Rollover79):
PHP:
=IF(AND(C3<>"",D3=""),ROMAN(COUNTIF($D$3:D3,"")),IF(C3<>"",IF(ISNUMBER(B2),B2+1,1),B2))
 
Upvote 0
Xin giúp về STT

Xin chào ACE trên diễn đàn !
Tôi có 1 bảng cần đánh STT(sau khi lọc từ pivot). Các macro tôi đã học được từ GPE áp dụng vào trường hợp này đều đánh STT không đúng. Tôi đành phải đánh bằng tay. Tuy không mất nhiều thời gian nhưng cũng cảm thấy bất tiện. Nhiều khi chuyển báo cáo lại phải làm thủ công trong khi báo cáo được làm tự động. Tôi muốn nhờ mọi người giúp đỡ. Xin chân thành cảm ơn ! (có fle kèm theo)
 

File đính kèm

Upvote 0
Anh dùng thử code này:

PHP:
Sub Macro1()
 Dim eRw As Long, LaMa As Byte, MLon As Long
 Dim WF, Cls As Range, Rng As Range
 Dim sLama As String
  
 eRw = [C65500].End(xlUp).Row:              Set WF = Application.WorksheetFunction
 Set Rng = Range([A5], Cells(eRw, "A")):    Rng.Value = ""
 For Each Cls In Rng
    If Left(Cls.Offset(, 1).Value, 2) <> "K" & ChrW(7871) Then
        LaMa = LaMa + 1:                    sLama = WF.Roman(LaMa)
        Cls.Value = sLama:                  MLon = 0
    Else
        MLon = 1 + MLon
        Cls.Value = MLon
    End If
 Next Cls

End Sub
 
Upvote 0
Nhờ trợ giúp về STT

Xin chào ACE trên GPE !
Tôi đã học được 1 số cách đánh STT trên diễn đàn nhưng áp dụng cụ thể vào trường hợp này macro đánh không theo ý muốn. Tôi mong được mọi người giúp đỡ. Xin cảm ơn ! (có file gửi kèm theo)
 

File đính kèm

Upvote 0
Xin chào ACE trên GPE !
Tôi đã học được 1 số cách đánh STT trên diễn đàn nhưng áp dụng cụ thể vào trường hợp này macro đánh không theo ý muốn. Tôi mong được mọi người giúp đỡ. Xin cảm ơn ! (có file gửi kèm theo)
Bạn giải thích giùm tại sao tại ô A76 không được đánh số thứ tự? Nếu do bạn sơ suất và ô A76 đáng lẽ là số 2 thì bạn dùng Code sau:
PHP:
Private Sub Worksheet_Activate()
Application.Calculation = xlCalculationManual
    Dim Cap1 As Long, Cap2 As Long, Cap3 As Long, Cll As Range, Rng As Range
    Set Rng = Range([B10], [B65536].End(xlUp))
    Rng.Offset(, -1).ClearContents
    For Each Cll In Rng
        Select Case Cll.IndentLevel
            Case 1
                Cap1 = Cap1 + 1
                Cap2 = 0
                Cll.Offset(, -1).Value = Application.WorksheetFunction.Roman(Cap1)
            Case 2
                Cap2 = Cap2 + 1
                Cap3 = 0
                Cll.Offset(, -1).Value = Application.WorksheetFunction.Roman(Cap1) & "." & Cap2
                
            Case 3
                Cap3 = Cap3 + 1
                Cll.Offset(, -1).Value = Cap3
            End Select
        Next
Application.Calculation = xlCalculationAutomatic
End Sub
Code này dùng cho Sheet cần đánh số thứ tự (Sheet bc trong file của bạn)
P/S: Cái này là Macro. Lần sau bạn nên đưa vào Box Lập trình với Excel thì phù hợp hơn.
 
Upvote 0
Đúng là sửa khó hơn viết mới

--=0
Dòng 62 còn sai do bạn nhập dữ liệu chưa chuẩn; Bạn sửa trong code nếu muốn nhập như vậy;
--=0
Cột 'C' cần có số liệu như mình vừa thêm; Nếu dữ liệu cột 'C' của bạn khác thì fải viết lại toàn bộ macro.
 

File đính kèm

Upvote 0
Xin lỗi, dữ liệu do chiết xuất từ file pivottable ra nên sơ suất khi đánh STT bằng tay. Xin cảm ơn bạn đã giúp đỡ !
 
Upvote 0
Nhờ sửa macro đánh STT

Xin chào ACE trên GPE !
Do yêu cầu cần lọc số liệu từ pivottable nên macro đánh STT của tôi không đánh STT đúng ở sheet"STT2"-(có file gửi kèm theo). Nhờ mọi người sửa giúp để macro đánh STT không bị trùng tên ở sheet"STT2". Xin cảm ơn mọi người !
 

File đính kèm

Upvote 0
Xin chào ACE trên GPE !
Do yêu cầu cần lọc số liệu từ pivottable nên macro đánh STT của tôi không đánh STT đúng ở sheet"STT2"-(có file gửi kèm theo). Nhờ mọi người sửa giúp để macro đánh STT không bị trùng tên ở sheet"STT2". Xin cảm ơn mọi người !
Trường hợp gặp dữ liệu phải đánh số thứ tự là số La Mã xong thì ta đánh tiếp tục hay đánh lại từ 1 vậy bạn ???
Làm tạm theo dữ liệu trong file của bạn, có gì nói sau ( hình như bắt đầu ở [A8] chứ nhỉ)
Mình làm sang file mới cho đỡ hao tài nguyên
Thân
 

File đính kèm

Upvote 0
Trường hợp gặp dữ liệu phải đánh số thứ tự là số La Mã xong thì ta đánh tiếp tục hay đánh lại từ 1 vậy bạn ???
Làm tạm theo dữ liệu trong file của bạn, có gì nói sau ( hình như bắt đầu ở [A8] chứ nhỉ)
Mình làm sang file mới cho đỡ hao tài nguyên
Thân
Xin chào Bạn !
Như mình đã nêu trong file gửi lần trước. do dữ liệu lọc từ pivot nên có 1 số dòng ẩn nên macro cũ của mình đánh STT không đúng. Xin cảm ơn bạn đã giúp đỡ. Mình gửi tiếp file để bạn xem macro của bạn giúp chưa đánh STT đúng khi có thêm STT la mã (II, III).
Nhờ bạn sửa lại giúp. Xin cảm ơn bạn !
 

File đính kèm

Upvote 0
Xin chào Bạn !
Như mình đã nêu trong file gửi lần trước. do dữ liệu lọc từ pivot nên có 1 số dòng ẩn nên macro cũ của mình đánh STT không đúng. Xin cảm ơn bạn đã giúp đỡ. Mình gửi tiếp file để bạn xem macro của bạn giúp chưa đánh STT đúng khi có thêm STT la mã (II, III).
Nhờ bạn sửa lại giúp. Xin cảm ơn bạn !
Hihi. Gần hiểu rồi
Bạn thử sửa tí chỗ này xem có OK không
PHP:
Set Vung = Range([b8], [b10000].End(xlUp))
thành
PHP:
Set Vung = Range([b8], [b10000].End(xlUp)).SpecialCells(12)
Có gì bàn tiếp
Thân
 
Upvote 0
Hihi. Gần hiểu rồi
Bạn thử sửa tí chỗ này xem có OK không
PHP:
Set Vung = Range([b8], [b10000].End(xlUp))
thành
PHP:
Set Vung = Range([b8], [b10000].End(xlUp)).SpecialCells(12)
Có gì bàn tiếp
Thân
Chào bạn concogia !
Mình đã sửa theo ý bạn nhưng chưa OK. Bạn cho chạy lại file mình gửi sau nhé. Cảm ơn bạn !
 
Upvote 0
PHP:
Set Vung = Range([b12], [b10000].End(xlUp)).SpecialCells(12)
Đây là 1 vùng rời rạc, nên không dùng Array Mg để sau đó gán Array xuống sheet được:
Nghĩa là không dùng

PHP:
For I = 1 To Vung.Rows.Count
mà dùng:
PHP:
        For Each Cls In Vung
Rồi sau đó:
PHP:
Cls.Offset(0, -1) = SLama
...

Cls.Offset(0, -1) = K +1
 
Lần chỉnh sửa cuối:
Upvote 0
Chào bạn concogia !
Mình đã sửa theo ý bạn nhưng chưa OK. Bạn cho chạy lại file mình gửi sau nhé. Cảm ơn bạn !
Hihi, Thầy ptm nói đúng "zồi"
Sub Macro1()
Dim d, Cll, Vung, K, LaMa, Slama
Set d = CreateObject("scripting.dictionary")
Set Vung = Range([b8], [b10000].End(xlUp)).SpecialCells(12)
[a8:a1000].ClearContents
For Each Cll In Vung
If Cll.Offset(, 1) = vbNullString Then
LaMa = LaMa + 1: Slama = Application.WorksheetFunction.Roman(LaMa)
Cll.Offset(, -1) = Slama
Else
If Not d.exists(Cll.Value) Then
d.Add Cll.Value, Nothing
Cll.Offset(, -1) = K + 1
K = K + 1
End If
End If
Next Cll
End Sub
Cái này chắc đúng
Trong thí dụ của bạn Stt ở dòng 18 & 26 hình như nhầm
Thân
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom