Lập biên bản nghiệm thu bằng VBA (1 người xem)

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

tranvanhung2009

Thành viên hoạt động
Tham gia
1/3/11
Bài viết
128
Được thích
18
Chào các anh chị!
Em có 1 file cell dùng để lập biên bản nghiệm thu (Em là dân xây dựng)
Do tính chất công việc, công việc lặp đi lặp lại nhiều lần. Mong các anh chị rành về VBA giúp em lập 1 đoạn code để thực hiện công việc trên, cụ thể như sau:
- Trong sheet: Danh mục công việc nghiệm thu là nội dung các biên bản nghiệm thu cần phải tạo. Từ nội dung cụ thể của từng biên bản, em tra các tiêu chuẩn cụ thể của công tác này. Sau đó điền các tiêu chuẩn vào từng công việc cụ thể như trong sheet Tiêu chuẩn áp dụng , sau đó em tiếp tục tra nội dung kiểm tra tương ứng của từng việc trong sheet Nội dung kiểm tra và phương pháp kiểm tra.
- Cuối cùng là từ sheet Biên bản nghiệm thu mẫu ta tự động điền để có các biên bản nghiệm thu cần làm


File đính kèm ở bên dưới
Chân thành cám ơn các anh chị!
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các anh chị!
Em có 1 file cell dùng để lập biên bản nghiệm thu (Em là dân xây dựng)
Do tính chất công việc, công việc lặp đi lặp lại nhiều lần. Mong các anh chị rành về VBA giúp em lập 1 đoạn code để thực hiện công việc trên, cụ thể như sau:
- Trong sheet: Danh mục công việc nghiệm thu là nội dung các biên bản nghiệm thu cần phải tạo. Từ nội dung cụ thể của từng biên bản, em tra các tiêu chuẩn cụ thể của công tác này. Sau đó điền các tiêu chuẩn vào từng công việc cụ thể như trong sheet Tiêu chuẩn áp dụng , sau đó em tiếp tục tra nội dung kiểm tra tương ứng của từng việc trong sheet Nội dung kiểm tra và phương pháp kiểm tra.
- Cuối cùng là từ sheet Biên bản nghiệm thu mẫu ta tự động điền để có các biên bản nghiệm thu cần làm


File đính kèm ở bên dưới
Chân thành cám ơn các anh chị!
Sao tôi không thấy File đính kèm đâu nhỉ?
Ah, thấy rồi.
 
Upvote 0
Chào các anh chị!
Em có 1 file cell dùng để lập biên bản nghiệm thu (Em là dân xây dựng)
Do tính chất công việc, công việc lặp đi lặp lại nhiều lần. Mong các anh chị rành về VBA giúp em lập 1 đoạn code để thực hiện công việc trên, cụ thể như sau:
- Trong sheet: Danh mục công việc nghiệm thu là nội dung các biên bản nghiệm thu cần phải tạo. Từ nội dung cụ thể của từng biên bản, em tra các tiêu chuẩn cụ thể của công tác này. Sau đó điền các tiêu chuẩn vào từng công việc cụ thể như trong sheet Tiêu chuẩn áp dụng , sau đó em tiếp tục tra nội dung kiểm tra tương ứng của từng việc trong sheet Nội dung kiểm tra và phương pháp kiểm tra.
- Cuối cùng là từ sheet Biên bản nghiệm thu mẫu ta tự động điền để có các biên bản nghiệm thu cần làm


File đính kèm ở bên dưới
Chân thành cám ơn các anh chị!
+) Theo tôi bạn tách cột Bắt đầu nghiệm thu và Kết thúc nghiệm thu thành các cột riêng ví dụ như 8h20; 9h20; 20/07/2014.
Vì ngoài nghiệm thu nội bộ bạn còn cần phải link ngày giờ này sang Phiếu yêu cầu nghiệm thu và Nghiệm thu công việc phải không? :-=
+) Bên các sheet Biên bản nghiệm thu để IN xuất bản không nên để Merge cell. Excel không phải là word, Excel có rất nhiều cột để nhập dữ liệu.
+) Hãy dùng Data Validation để xuất số TT sang sheet Biên bản nghiệm thu. Sau đó tại các vị trí bạn bôi màu vàng, đỏ bạn dùng VLOOKUP sẽ ra tất tần tật --=0
 
Upvote 0
+) Theo tôi bạn tách cột Bắt đầu nghiệm thu và Kết thúc nghiệm thu thành các cột riêng ví dụ như 8h20; 9h20; 20/07/2014.
Vì ngoài nghiệm thu nội bộ bạn còn cần phải link ngày giờ này sang Phiếu yêu cầu nghiệm thu và Nghiệm thu công việc phải không? :-=
+) Bên các sheet Biên bản nghiệm thu để IN xuất bản không nên để Merge cell. Excel không phải là word, Excel có rất nhiều cột để nhập dữ liệu.
+) Hãy dùng Data Validation để xuất số TT sang sheet Biên bản nghiệm thu. Sau đó tại các vị trí bạn bôi màu vàng, đỏ bạn dùng VLOOKUP sẽ ra tất tần tật --=0

Mình đã dùng hàm VLookup rồi, nhưng vẫn không hiệu quả bằng VBA.
 
Upvote 0
Mình đã dùng hàm VLookup rồi, nhưng vẫn không hiệu quả bằng VBA.

Thử code này, xem file đính kèm

[GPECODE=vb]
Sub Diendulieu()
Const DM = "'DM cong viec nghiem thu'!"
Const TC = "'TC AP DUNG'!"
Const ND = "'ND KIEM TRA'!"


Dim KyHieu, MCV, i As Long
Dim a As Range, b As Range, c As Range
With Sheets("BB NGHIEM THU")
KyHieu = .Range("B27").Value


Set a = Sheets("DM cong viec nghiem thu").Range("E4:E2000").Find(KyHieu, , xlFormulas, xlPart, xlByRows, xlNext, False, False)


MCV = a.Offset(, -3).Value



.Range("B12").Formula = "=" & DM & a.Offset(, -2).Address
.Range("C20").Formula = "=" & DM & a.Offset(, 2).Address
.Range("C21").Formula = "=" & DM & a.Offset(, 3).Address
.Range("B57").Formula = "=" & DM & a.Offset(, -2).Address
.Range("I57").Formula = "=" & DM & a.Offset(, 4).Address
.Range("K57").Formula = "=" & DM & a.Offset(, 5).Address


Set b = Sheets("TC AP DUNG").Range("B4:B2000").Find(MCV, , xlFormulas, xlPart, xlByRows, xlNext, False, False)


For i = 1 To b.End(xlDown).Row - b.Row - 1
.Range("B29").Offset(i).Formula = "=" & TC & b.Offset(i, 2).Address
Next


Set c = Sheets("ND KIEM TRA").Range("B4:B20000").Find(MCV, , xlFormulas, xlPart, xlByRows, xlNext, False, False)


For i = 1 To c.End(xlDown).Row - c.Row - 1
.Range("B48").Offset(i).Formula = "=" & ND & c.Offset(i, 2).Address
.Range("G48").Offset(i).Formula = "=" & ND & c.Offset(i, 3).Address
.Range("K48").Offset(i).Formula = "=" & ND & c.Offset(i, 4).Address
Next


End With


End Sub


[/GPECODE]
 

File đính kèm

Upvote 0

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

Back
Top Bottom