Cập Nhật dữ liệu từ nhiều file vào 1 file (2 người xem)

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

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

xmenx56

Thành viên chính thức
Tham gia
29/4/11
Bài viết
74
Được thích
28
Xin chào anh chị, những gì em hỏi nằm trong file đính kèm. Rất mong nhận được sự giúp đỡ của các anh, chị trên mọi miền đất nước. Chân thành cảm ơn.
 
Xin lỗi các bác, bài này khó hay dễ, hay là không hiểu vậy các bác hoặc ???. Xin được giúp đỡ. Nếu giải được bài này sẽ được bù đắp công lao của anh,chị , bù đắp gì ra sao...Nói chuyện qua gmail: xmenx56@gmai.com sẽ tiện hơn xin hứa vinh dự và uy tín. Cảm ơn
 
Lần chỉnh sửa cuối:
Chẳng ai xem, nhìn, thật là tủi phận.
Chà chà... ai lại nói vậy, nhìn vào số lần đọc topic này chứng tỏ có nhiều người xem đấy chứ.
Trước mắt, đồng nghiệp tham khảo file này nhé.
Trong file, mình đã cải thiện khá nhiều về chức năng chia file điểm (nên dùng 3 file cho 3 môn).
Hơn nữa, mình cũng xây dựng thêm hàm tự tạo để xếp loại cuối học kỳ, cuối năm. Đã sử dụng VBA thì nên sử dụng hàm tự tạo để xếp loại học lực, sẽ gọn gàng hơn, thậm chí kết quả cuối cùng chỉ cần giá trị chứ không cần hiển thị hàm trong đó cho nhẹ file.
Hàm này còn phải thảo luận thêm vì mình xây dựng theo hướng dẫn đánh giá 3 môn học này của Sở GD-ĐT Gia Lai (có thể không phù hợp với địa phương của bạn) và chưa xét trường hợp học sinh được miễn học.
Lưu ý: Trước khi cập nhật dữ liệu từ các file điểm cá nhân, hãy chép tất cả các file này vào 1 thư mục riêng không chứa file chủ. Việc này nhằm 2 mục đích:
- Quản lý file con được tập trung.
- Đơn giản hóa code cập nhật vì mỗi lần tìm thấy 1 file trong thư mục, không cần xét thêm đây có phải là file chủ không.

Rất mong nhận được sự góp ý của tất cả thành viên.
Trân trọng!
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn anh rất, rất nhiều: Anh xem lại dùm em
1. Báo lỗi câu: [F5].Resize([Q1], 15).ClearContents.
2. Tìm file mới tạo không thấy.
3. File tạo xong bị ẩn các dòng đầu của lớp mình mới vừa tạo.
Rất mong nhận được sự giúp đỡ của anh. Trân trọng cảm ơn anh rất nhiều
 
Lần chỉnh sửa cuối:
Bài này được anh Nghiphuc giúp đỡ gần được rồi, nhưng do hiểu biết VBA kém, nên rất mong nhận được sự giúp đỡ từ các thành viên GPE. Cảm ơn rất nhiều.
 
Cảm ơn anh rất, rất nhiều: Anh xem lại dùm em
1. Báo lỗi câu: [F5].Resize([Q1], 15).ClearContents.
2. Tìm file mới tạo không thấy.
3. File tạo xong bị ẩn các dòng đầu của lớp mình mới vừa tạo.
Rất mong nhận được sự giúp đỡ của anh. Trân trọng cảm ơn anh rất nhiều
Nguyên nhân do trong file chủ, hàng tiêu đề phụ (hàng 6) bị ẩn nên code chạy không được. Lúc đầu code chạy bình thường, sau đó mình cho ẩn hàng 6 đi nhưng lại không test lại.
Cách khắc phục: Thêm câu lệnh [5:5].EntireRow.Hidden = False sau câu lệnh [1:1].Delete
Xin xem lại file đính kèm mới ở bài #4.
 
Anh thành công rồi đó anh phúc. Tuy nhiên phát sinh 4 vấn đề nhỏ sau:
1. Sau khi tạo file xong nhấp vào Nút cập nhật điểm số thì không nhìn thấy file nhưng mình biết nơi lưu file nhấp chuột vào open thì cập nhật được điểm số, Tóm lại không nhìn thấy file mới tạo.
2. Khoá sheet file chủ thì 2 nút ( Tạo file và cập nhật điểm số) không làm việc được.
3. Em muốn sau khi tạo file mới khóa các (cột K, cột Q, cột R, cột S, cột T)
4. Công văn các môn xếp loại Nhạc...của tỉnh em Khác với công văn của tỉnh anh. ( em đã gữi qua mail của anh). Rất mong nhận được sự giúp đỡ của anh và từ các thành viên GPE. Em trân trọng cảm ơn rất nhiều.
 
Bài này được khoảng 90% rồi, chỉ còn 1 số tình huống phát sinh thêm, rất xin nhận được sự giúp đỡ từ các bác. Trân trong cảm ơn
 
Anh thành công rồi đó anh phúc. Tuy nhiên phát sinh 4 vấn đề nhỏ sau:
1. Sau khi tạo file xong nhấp vào Nút cập nhật điểm số thì không nhìn thấy file nhưng mình biết nơi lưu file nhấp chuột vào open thì cập nhật được điểm số, Tóm lại không nhìn thấy file mới tạo.
2. Khoá sheet file chủ thì 2 nút ( Tạo file và cập nhật điểm số) không làm việc được.
3. Em muốn sau khi tạo file mới khóa các (cột K, cột Q, cột R, cột S, cột T)
4. Công văn các môn xếp loại Nhạc...của tỉnh em Khác với công văn của tỉnh anh. ( em đã gữi qua mail của anh). Rất mong nhận được sự giúp đỡ của anh và từ các thành viên GPE. Em trân trọng cảm ơn rất nhiều.

Bác nào rành VBA giúp dùm em với, em cảm ơn nhiều lắm.
 
Anh thành công rồi đó anh phúc. Tuy nhiên phát sinh 4 vấn đề nhỏ sau:
1. Sau khi tạo file xong nhấp vào Nút cập nhật điểm số thì không nhìn thấy file nhưng mình biết nơi lưu file nhấp chuột vào open thì cập nhật được điểm số, Tóm lại không nhìn thấy file mới tạo.
2. Khoá sheet file chủ thì 2 nút ( Tạo file và cập nhật điểm số) không làm việc được.
3. Em muốn sau khi tạo file mới khóa các (cột K, cột Q, cột R, cột S, cột T)
4. Công văn các môn xếp loại Nhạc...của tỉnh em Khác với công văn của tỉnh anh. ( em đã gữi qua mail của anh). Rất mong nhận được sự giúp đỡ của anh và từ các thành viên GPE. Em trân trọng cảm ơn rất nhiều.
Bữa giờ bận làm công tác thi tốt nghiệp, chưa nghiên cứu được. Bây giờ thì OK rồi. Mình đã đáp ứng khá đầy đủ các yêu cầu của bạn.
1. Khi nhấn nút Cập nhật điểm, bạn không nhìn thấy file là đương nhiên, vì đó là hộp thoại chọn thư mục (bạn nhìn giao diện và tiêu đề của hộp thoại sẽ thấy điều này). Mình đã thay đổi chỗ này: Chọn file chứ không chọn thư mục nữa.
2. Cả 2 nút lệnh đã hoạt động tốt khi khóa sheet. Password protect sheet là "GPE". Nếu thay đổi Password, bạn cần thay đổi tương ứng trong 2 sub: Sub CapNhat() trong Module và Private Sub CmdOK_Click() trên Form.
3. Mình đã khóa toàn bộ sheet, chỉ trừ những vị trí cho giáo viên nhập điểm. Có nghĩa là sau khi tạo file điểm cá nhân, GV chỉ có thể nhập điểm mà không can thiệp đến cấu trúc cũng như các thông tin khác trong file.
4. Mình đã xây dựng công thức theo hướng dẫn của tỉnh An Giang (2 trường hợp thắc mắc bữa trước: Giỏi-Kém và Kém-Giỏi, mình đều cho về kết quả cả năm là TB). Trong file, mình sử dụng công thức xây dựng từ hàm sẵn có của Excel, còn 2 hàm tự tạo (TDhk và TDcn) chỉ để tham khảo.

Bạn xem trong file và cho ý kiến nhé.
Rất mong nhận được sự góp ý của toàn thể thành viên diễn đàn GPE.
Xin trân trọng cảm ơn!
 

File đính kèm

Dạ tốt rồi anh, còn 1 cái nhỏ nữa àh anh phúc em đã gữi qua mail của anh rồi. anh xem dùm em, em rất cảm ơn anh. Chúc anh vui ve và dồi dào sức khỏe.
 
Dạ tốt rồi anh, còn 1 cái nhỏ nữa àh anh phúc em đã gữi qua mail của anh rồi. anh xem dùm em, em rất cảm ơn anh. Chúc anh vui ve và dồi dào sức khỏe.
Theo mình, cái sai là ở chỗ việc nhà trường bạn áp dụng văn bản hướng dẫn của Sở.
Theo hướng dẫn thì như vầy:
HỌC KÌ:
+ Loại Giỏi (G): Có ít nhất 2/3 số lần kiểm tra đạt loại Giỏi, Các bài còn lại loại Khá.
+ Loại Khá (K): Có ít nhất 2/3 số lần kiểm tra đạt loại Khá, Các bài còn lại loại Trung Bình
+ Loại Trung Bình (TB): Có ít nhất 2/3 số lần kiểm tra đạt loại Trung Bình, Các bài còn lại loại Yếu.
+ Loại Yếu (Y): Có ít nhất 2/3 số lần kiểm tra đạt loại Yếu, Các bài còn lại loại Kém.
+ Loại Kém (Kém): Các trường hợp còn lại.
Còn việc áp dụng ở trường bạn là như vầy:
Những trường hợp em nêu ở dưới, áp dụng công văn do 2/3 bài kiểm tra
Môn TD có 5 bài vậy lấy lại 3 bài kiểm tra và áp dụng công văn
Môn Nhạc - Họa có 3 bài vậy lấy lại 2 bài kiểm tra và áp dụng công văn
2 môn Nhạc, Họa thì OK rồi, còn riêng môn Thể dục thì phải xem lại đấy, bởi vì 3/5 < 2/3. Do đó công thức trong file của mình là áp dụng đúng hướng dẫn (tất nhiên mình không thể biết quyết định của hiệu trưởng trường bạn như thế nào).
Nếu áp dụng theo cách ở trường bạn thì có thể sửa lại công thức tại ô K7 là:
=IF(J7="","",IF(J7="M","M",IF(AND(G>=0.6,Tb+Y+Kem=0),"G",IF(AND(G+K>=0.6,Y+Kem=0),"K",IF(AND(G+K+Tb>=0.6,Kem=0),"Tb",IF(G+K+Tb+Y>=0.6,"Y","Kém"))))))
 

File đính kèm

Em đã gữi mail mới cho anh. Anh xem lại dùm em. Chân thành cảm ơn anh nhiều.
 
Em đã gữi mail mới cho anh. Anh xem lại dùm em. Chân thành cảm ơn anh nhiều.
Mình đã xem file trong mail vừa nhận.
Thứ nhất, chức năng cập nhật dữ liệu trong file đó vẫn bình thường, không vấn đề gì, bạn thử tạo 1 file điểm cá nhân, nhập điểm vào file này, lưu file, đóng lại và nhấn nút Cập nhật điểm trên file chính xem.
Thứ hai, việc xếp loại học kỳ trong 2 trường hợp trong file của bạn (3 điểm G, 2 điểm Y và 3 điểm K, 2 điểm Y), công thức tại bài #14 ở trên của mình đều xếp loại học kỳ là Tb.
Bạn xem lại file sau nhé. File này là file tại bài #12, sau khi đã sửa công thức như ở bài #14.
Còn vấn đề gì, chúng ta nên trao đổi trực tiếp tại topic này để tiện theo dõi nhé, bởi vì đâu chỉ có 2 chúng ta đọc topic này đâu.
 

File đính kèm

Dạ, file em gữi cho anh, em đã đưa công thức xếp loại của em vào bây giờ cập nhật điểm sao không được, anh xem lại dùm em, bị lỗi chổ này anh Phúc: Sheet1.[B7:B65536].Find(.[B5], Sheet1.[B7]).Offset(, 4).Resize(.[Q1], 11).Value _
= .[B5].Offset(, 4).Resize(.[Q1], 11).Value và công thức của em sao khi chia file bị lỗi (#REF) các địa chỉ AN2-AO2, AN7-AO7 hình như không chia file những cột này hả gì đó anh Phúc, em không rõ lắm. Cảm ơn anh
 
Lần chỉnh sửa cuối:
File em đã kiểm tra lại và chính xác rồi anh Phúc. Bây giờ phát sinh cái này nữa anh phúc ơi, Trên file chủ mình khóa sheet lại không cho nhập dữ liệu trên file này, nhưng khi tạo file điểm mới, mình mới cho cập nhật dữ liệu. Mong nhận được sự giúp đỡ của anh. chân thành cảm ơn anh.
 
File em đã kiểm tra lại và chính xác rồi anh Phúc. Bây giờ phát sinh cái này nữa anh phúc ơi, Trên file chủ mình khóa sheet lại không cho nhập dữ liệu trên file này, nhưng khi tạo file điểm mới, mình mới cho cập nhật dữ liệu. Mong nhận được sự giúp đỡ của anh. chân thành cảm ơn anh.
Cách xử lý cũng đơn giản thôi:
1. Chọn toàn bộ các cột F:P, nhấn Ctrl+1, chọn tab Protection và chọn Locked --> OK và khóa sheet lại (mục đích: không cho nhập dữ liệu vào các cột này).
2. Thêm câu lệnh sau vào trước câu lệnh ActiveSheet.Protect "GPE" trong Sub CmdOK_Click trên Form (mục đích: mở khóa vùng nhập điểm)
PHP:
Application.Union([F5].Resize([Q1], 5), [L5].Resize([Q1], 5)).Locked = False
Ngoài lề một chút: Mình sửa lại công thức xếp loại cả năm một chút: Thêm một hàm IF ở ngoài cùng để bẫy lỗi trường hợp chưa có đủ xếp loại của 2 học kỳ:
=IF(OR(R7="",S7=""),"",IF(R7=S7,R7,IF(OR(R7="M",S7="M"),SUBSTITUTE(R7&S7,"M",""),IF(ISNUMBER(FIND(HK1_2,Gcn)),"G",IF(ISNUMBER(FIND(HK1_2,Kcn)),"K",IF(ISNUMBER(FIND(HK1_2,Tbcn)),"Tb","Y"))))))
Xin tham khảo trong file.
 

File đính kèm

Lần chỉnh sửa cuối:
File tuyệt vời rồi anh Phúc. Cảm ơn anh nhiều lắm. Được voi đòi tiên. Em muốn tạo 1 form để In ra từng lớp trên file chủ, mỗi 1 lớp như vậy 2 trang giấy. Rất mong anh giúp đỡ. Cảm ơn anh nhiều
 
File tuyệt vời rồi anh Phúc. Cảm ơn anh nhiều lắm. Được voi đòi tiên. Em muốn tạo 1 form để In ra từng lớp trên file chủ, mỗi 1 lớp như vậy 2 trang giấy. Rất mong anh giúp đỡ. Cảm ơn anh nhiều
Tưởng được voi đòi... HBT mới khó chứ như vầy thì chắc không khó lắm đâu. Bạn cứ thiết lập trang in (sử dụng Page setup) ngay trên file chủ. Sau đó, tạo file điểm cá nhân và thử in file điểm cá nhân này xem có ổn không nhé, khỏi cần thêm Form mới chi cho phức tạp.
Xin xem lại file đính kèm tại bài #19. Do cấu trúc bảng tính nên mình thiết lập trang in ngang.
 
Dạ vậy cũng được, cảm ơn anh, Cho em hỏi thêm nữa anh Phúc ơi. Làm sao cho stt, mã h/s, danh sách h/s, tên lớp, không bị trống vậy anh phúc, em mò ngày nay đuối qua anh ơi. Mong anh và các thành viên trên diễn đàn giúp đỡ, em trân trọng cảm ơn rất nhiều.
 
Web KT

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

Back
Top Bottom