Giúp em Thống kê thi đua (2 người xem)

  • Thread starter Thread starter Hoangjia
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

Hoangjia

Thành viên mới
Tham gia
10/4/07
Bài viết
17
Được thích
1
Em có file dữ liệu như đính kèm, giờ em muốn tổng hợp các hình thức thi đua về Sheet "Tổng hợp" các bác giúp em với nhé, em đang thực sự rất cần
 

File đính kèm

File của bạn giả lập thấy mà nản luôn!

/(/hũng điểm nên tránh là:

(|) Tên các trang tính không nên có khoảng trắng & dấu tiếng Việt. (Nói thêm là: cũng không nên quá dài dòng; Ví dụ thay vì "Trùng Khánh", ta chỉ nên 'TKhanh' hay "TrKh" là OK rồi.)

(|) Bạn có 4 loại danh hiệu mà chỉ giả lập được có mỗi 1 loại LĐTT (!)

(|) Trong hầu hết các trang tính tự nhiên bỏ trống dòng đầu; Đẹp đâu chưa thấy, nhưng cực thì nhãn tiền!
 

File đính kèm

Upvote 0
Bác ơi bác xem lại Giúp em một chút, các danh hiệu vẫn bị nhầm chỗ, và bác có thê Share code chương trình cho em không? Để em nghiên cứu học tập. Cảm ơn bác
 
Upvote 0
Bác xem lại một chút, các danh hiệu vẫn bị nhầm chỗ, và bác có thê Share code chương trình cho em không? Để em nghiên cứu học tập. Cảm ơn bác

(|) Macro vẫn hiện diện trong file đính kèm, tự tìm đi nha!
( Còn nếu bạn cần diễn dịch mã lệnh đó lại là chuyện hoàn toàn khác)

(|) Nhầm là nhầm cụ thể trang tính nào, dòng nào trên báo cáo tổng hợp; Nói khơi khơi zậy thì tổ tốn thời gian của bạn & của người khác chứ tiết kiệm gì vài lời viết!


Thân ái!
 
Upvote 0
Trong trang "Tổng hợp" các danh hiệu vẫn chưa về đúng với bảng của chúng, ví dụ ở bảng "Chiến sỹ thi đua toàn quốc" vẫn có "LĐTT" nhầm thế thì em chết mất, em muốn bác Share cái code để em nghiên cứu, vì em còn non trong lĩnh vực này lắm. Có gì bác đừng giận mà khổ em. Một lần nữa chân thành cảm ơn bác. Nếu có thể bác dịch cho em cái code luôn
 
Lần chỉnh sửa cuối:
Upvote 0
Hình như bạn chỉ cần thống kê tại cột 'G' không thôi thì fải? Xem & sửa như dưới đây

PHP:
Option Explicit
Sub gpeTongHopThiDua()
'Đến trước dòng lệnh 2: Khai báo các biến cần dùng:'
 Dim Sh As Worksheet, Rg0 As Range, Rng As Range, sRng As Range
 Dim Jj As Byte, DH As Byte
 Dim rBD As Long, Res As Long, hRw As Long
 Dim MyAdd As String
'F1: Kích hoạt trang tính "Tổng hợp";    F2: Đem vùng đã gán tên gán cho biến đối tượng:'
2 Sheet33.Select:                        Set Rg0 = Range("DHTD")
'Cho hiện các dòng đã ẩn trước đó:'
 Rows("1:999").Hidden = False
'Thiết lập vòng lặp duyệt theo thành viên trong biến đã gán dữ liệu (cho đến dòng lệnh cuối):'
4  For Jj = 1 To Rg0.Cells.Count
' Đ/K nếu gặp ô nào rỗng thì thoát ngay:'
    If Rg0(Jj).Value = "" Then Exit For
' Theo trình tự vòng lặp ta ấn định các chỉ số dòng tương ứng:'
    rBD = Choose(Jj, 7, 43, 123, 323)
'Như trên, với chỉ số độ giản cách:'
    Res = Choose(Jj, 33, 77, 197, 300)
'Xóa dữ liệu cũ:'
    Cells(rBD, "B").Resize(Res, 7).ClearContents
'Thiết lập vòng lập duyệt qua tất thẩy các trang tính (cho đến dòng lệnh 24):'
    For Each Sh In ThisWorkbook.Worksheets
'Đ/K nếu không fải là trang "Tổng hợp" thì thực thi các lệnh cho đến dòng 23:'
        If Sh.Index <> 32 Then
'Đem cột "G" của trang tính đang duyệt gán vô biến:'
            Set Rng = Sh.Columns("G:G")                  '<=|'
'Tìm trong biến vùng trị trùng với ô mà vòng lặp (4) đang khảo sát:'
            Set sRng = Rng.Find(Rg0(Jj).Value, , xlFormulas, xlWhole)
'Nếu tìm thấy thì thưc hiện các lệnh cho đến dòng 22:'
            If Not sRng Is Nothing Then
'Gán địa chỉ ô tìm thấy cho biến:'
                MyAdd = sRng.Address                     '<=|'
'Thiết lập vòng lặp duyệt hết dữ liệu trùng với danh hiệu đang tìm cho đến dòng 21:'
                Do                                                 '<=|'
'Tuyên bố làm việc với ô có các chỉ số tương ứng giữ trong các biến - cho đến dòng 19:'
                  With Cells(rBD + Res, "B").End(xlUp).Offset(1)
'Gán trị của dòng tìm thấy vô dòng cần gán:'
                        .Resize(, 7).Value = Sh.Cells(sRng.Row, "B").Resize(, 7).Value
'Gàn dòng thích hợp vô biến:'
                      hRw = .Row + 3
                    End With
'Tìm tiếp cho đến hết các ô trên cột "G" của trang đang duyệt:'
20                    Set sRng = Rng.FindNext(sRng)                            '<=|'
                Loop While Not sRng Is Nothing And sRng.Address <> MyAdd                       '<=|'
22            End If
        End If
24    Next Sh
'Ẩn các dòng không dữ liệu trong vùng:'
    Range(Cells(hRw, "B"), Cells(rBD + Res - 1, "B")).EntireRow.Hidden = True
 Next Jj
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Hix, bác ơi, em để dữ liệu trắng, thì nó vẫn hiện vài người trong bảng "Lao động tiên tiến" là sao ạ, và bác cho em hỏi luôn, em muốn xóa vài Sheet đi hoặc thêm vài sheet hoặc trường vào Sheet thì có ảnh hưởng đến dữ liệu không? Rất mong tin bác.
 
Upvote 0
Hix, bác ơi,(1) em để dữ liệu trắng, thì nó vẫn hiện vài người trong bảng "Lao động tiên tiến" là sao ạ, và bác cho em hỏi luôn,(2) em muốn xóa vài Sheet đi hoặc thêm vài sheet hoặc (3) trường vào Sheet thì có ảnh hưởng đến dữ liệu không? Rất mong tin bác.
(1) Fải đảm bảo rằng trong toàn bộ các trang không có còn dữ liệu nào chứa các danh hiệu thi đua;​
(2) Xóa thì không vấn đề gì; thêm thì fải có cấu trúc i chang các trang trước;​
(3) Thêm hay xóa trường thì cũng đảm bảo nguyên tắc các cấu trúc trang tính là i sì sỳ nhau​
Thân ái & chúc thành công!​
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Vẫn không được

Khi em xóa bớt Sheet đi, quay về trang Tổng hợp, mặc dù đã xóa hết dữ liệu nhưng vẫn có các danh hiệu thi đua ở trang Tổng hợp -\\/. tại sao thế bác nhỉ, Tiếp tục ngóng tin bác
 

File đính kèm

Upvote 0
Số người đăng kí vượt so với "định mức" rồi!

Cấp trung ương chỉ có 33 dòng để chứa 33 người đăng kí thôi, tương tự như vậy, cấp tỉnh cũng chỉ 120-43 người mà thôi! Nhiều người quá, macro nó mệt, nó không chịu làm là fải rồi! Muốn nó làm thì bạn cần cho biết khoảng số người đăng kí tối đa trong 1 năm có thể!
 
Upvote 0
Giúp em thống kê

Số lượng em để ở Bảng tổng hợp nhé Bác ơi, một lần nữa chân thành cảm ơn các bác nhé
 

File đính kèm

Upvote 0
hay quá. Em mới tham gia. Mong học các các nhiều
 
Upvote 0
Em muốn thêm đơn vị, và muốn thêm danh hiệu có được không bác, cảm ơn bác nhiều nhiều
 
Upvote 0
Thêm đơn vị (thêm sheet) vẫn được. Còn thêm danh hiệu thì phải chỉnh code. Bạn gởi file lên mình làm cho.
 
Upvote 0
Bác ơi còn điều này, khi em nhập danh sách vào em muốn các sheet hay nói cách khác các đơn vị ở bảng "Tổng hợp" sắp xếp theo từng đơn vị; ví dụ hết đơn vị Bảo lạc đến Bảo Lâm; chức cái bác giúp em nó không xếp theo từng đơn vị bác ạ. Một lần nữa nhờ bác và Cảm ơn bác
 
Upvote 0
nói cách khác các đơn vị ở bảng "Tổng hợp" sắp xếp theo từng đơn vị
Sheet Tổng hợp sắp xếp theo danh hiệu thi đua trước, sau đó mới sắp theo đơn vị phải không bạn. Nếu đúng thế, thì chương trình đã thực hiện được yêu cầu này rồi. Bạn gởi file lên ( có chỗ đơn vị bị lẫn lộn) để mình xem mới biết được nguyên nhân mà khắc phục.
 
Upvote 0
Web KT

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

Back
Top Bottom