Lập bảng lương hàng tháng bằng VBA

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

vuthao32

Thành viên chính thức
Tham gia
22/9/10
Bài viết
79
Được thích
0
Em có bảng lương hàng tháng đặt trên Excel em muốn nhờ chị viết giúp em VBA khi làm xong số liệu trên trang tính (DỮ LIỆU) và ghi tháng vào ô màu vàng sau đó ấn (TẠO BẢNG LƯƠNG THÁNG .....) thì sẽ bổ sung 1 trang mới tính tương ứng với tháng tên. Khi làm hết 12 tháng hoàn thành Sheet (TONG HOP NAM) nhấn vào (TẤT CẢ THƯƠNG HIỆU THƯƠNG MẠI) thì sẽ lấy được các số lương tháng được tạo lại với nhau để ghi vào các cột tương ứng trên Sheet (TONG HOP NAM) . ví dụ là (Tổng lương tháng 1 = 50.000đ Tháng 2 = 45.000 thì trong bảng tổng hợp Tổng lương hưởng = 95.000 và cột thực hiện củng lấy như thế)
Em chân thành cám ơn. /.
 

File đính kèm

Lần chỉnh sửa cuối:
Em có bảng lương hàng tháng đặt trên Excel em muốn nhờ chị viết giúp em VBA khi làm xong số liệu trên trang tính (DỮ LIỆU) và ghi tháng vào ô màu vàng sau đó ấn (TẠO BẢNG LƯƠNG THÁNG .....) thì sẽ bổ sung 1 trang mới tính tương ứng với tháng tên. Khi làm hết 12 tháng hoàn thành Sheet (TONG HOP NAM) nhấn vào (TẤT CẢ THƯƠNG HIỆU THƯƠNG MẠI) thì sẽ lấy được các số lương tháng được tạo lại với nhau để ghi vào các cột tương ứng trên Sheet (TONG HOP NAM) . ví dụ là (Tổng lương tháng 1 = 50.000đ Tháng 2 = 45.000 thì trong bảng tổng hợp Tổng lương hưởng = 95.000 và cột thực hiện củng lấy như thế)
Em chân thành cám ơn. /.
Tôi không hiểu Sheet"DATA" với Sheet"BANG LUONG THANG ......." khác nhau cái gì?
 
@Chủ bài đăng:
Lý ra bạn nên có Bảng lương tháng trước (như tháng 1 với đầy đủ số liệu chứa trong nó) & trang 'DuLieu' có đủ số liệu của tháng kế tiếp (tháng 2)
Có như vậy ta mới tiến hành tao macro cho chuyện tạo bảng lương tháng kế tiếp hay tổng hợp số liệu cho các tháng kể từ đầu năm

Ngoài ra bạn còn phải đề phòng chuyện di biến động nhân lực cơ quan qua các tháng trong năm; Để làm được việc này, bạn phải có danh sách cập nhật sỉ số của cơ quan.

Còn như hiện nay, viết macro cho bạn chắc bạn cũng không xài được.
 
:D :d :D :D :d :D :D :d :D :D :d :D :D :d :D :D :d :D :D :d :D :D :d :D :D :d :D
$$$$@
PHP:
Sub TaoBangTongHopLuongCaNam()
 Dim Cls As Range, Sh As Worksheet, Rng As Range, sRng As Range
 Dim ShName As String, NameSh As String
 Dim Trg As Integer, Rws As Long
 On Error GoTo LoiCT
 
 Application.ScreenUpdating = False
 For Each Sh In ThisWorkbook.Worksheets
    If IsNumeric(Right(Sh.Name, 2)) And Len(Sh.Name) = 3 Then
        NameSh = NameSh & Sh.Name
    End If
 Next Sh
 For Each Cls In Range([A12], [A999].End(xlUp))
    Cls.Offset(, 4).Resize(, 17).ClearContents
    For Trg = 1 To Len(NameSh) Step 3
        ShName = Mid(NameSh, Trg, 3)
        Set Sh = ThisWorkbook.Worksheets(ShName)
        Rws = Sh.[A12].CurrentRegion.Rows.Count
        Set Rng = Sh.[A12].Resize(Rws)
        Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
        If Not sRng Is Nothing Then
            Cells(Cls.Row, 15).Value = Cells(Cls.Row, 15).Value + Sh.Cells(sRng.Row, 15).Value
            Cells(Cls.Row, 11).Value = Cells(Cls.Row, 11).Value + Sh.Cells(sRng.Row, 11).Value
            Cells(Cls.Row, 17).Value = Cells(Cls.Row, 17).Value & Sh.Name & ", "
        End If
        Set Rng = Nothing
    Next Trg
 Next Cls
Err_:
    Application.ScreenUpdating = True
    MsgBox "Xong Rôi!":                     Exit Sub
LoiCT:
    If Err = 9 Then
        Resume Next
    Else
        MsgBox Err, , Error():              GoTo Err_
    End If
End Sub
 

File đính kèm

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

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

Back
Top Bottom