Tổng hợp nhiều file con vào 1 file (mỗi file con thành 1 sheet) (5 người xem)

Liên hệ QC

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

titanic20072007

Thành viên thường trực
Tham gia
10/7/07
Bài viết
213
Được thích
8
Nghề nghiệp
Giáo viên
Chào các bác.
Trường em quản lý điểm bằng phần mềm có tình huống này em không làm được mong các bác GPE giúp đỡ. Phần mềm xuất tệp điểm cho mỗi lớp một tệp (mỗi sheet là một môn) để vậy nhập điểm phải chờ đợi nhau mất thời gian quá, mình đã tách được mỗi sheet thành một tệp để của GV nào thì mang về nhập điểm rồi nộp lại để copy vào tệp chung của lớp tương ứng. Nhưng việc copy này mất thời gian quá mà có thể sai xót. Mình có ý tưởng là ghép các tệp điểm đó lại với nhau thành tệp như ban đầu (cách ghép tệp thì mình chưa biết) hoặc cập nhật từ các tệp bộ môn vào tệp của lớp (nếu cập nhật nối dữ liệu lại với nhau vào cùng một sheet thì mình tham khảo trên GPE đã làm được) nhưng cập nhật nội dung của một tệp vào một sheet và lại phải đúng sheet môn tương ứng (theo mẫu tệp điểm máy đã xuất) thì quá khó với mình. Vậy mình nhờ các bác trong GPE giúp với.
Mình đã chuẩn bị dữ liệu đầy đủ rồi: Có 12 tệp điểm của 12 lớp (phầm mềm xuất ra) mình đã tách mỗi tệp các sheet thành một tệp đặt trong một thư mục với tên của lớp đó (12 thư mục). Ở ngoài có tệp Ghep tep diem.xls. mình muốn khi chạy tệp này thì tiến hành ghép hoặc cập nhật điểm. Các bác giúp với. Cảm ơn.
 

File đính kèm

Chào các bác.
Trường em quản lý điểm bằng phần mềm có tình huống này em không làm được mong các bác GPE giúp đỡ. Phần mềm xuất tệp điểm cho mỗi lớp một tệp (mỗi sheet là một môn) để vậy nhập điểm phải chờ đợi nhau mất thời gian quá, mình đã tách được mỗi sheet thành một tệp để của GV nào thì mang về nhập điểm rồi nộp lại để copy vào tệp chung của lớp tương ứng. Nhưng việc copy này mất thời gian quá mà có thể sai xót. Mình có ý tưởng là ghép các tệp điểm đó lại với nhau thành tệp như ban đầu (cách ghép tệp thì mình chưa biết) hoặc cập nhật từ các tệp bộ môn vào tệp của lớp (nếu cập nhật nối dữ liệu lại với nhau vào cùng một sheet thì mình tham khảo trên GPE đã làm được) nhưng cập nhật nội dung của một tệp vào một sheet và lại phải đúng sheet môn tương ứng (theo mẫu tệp điểm máy đã xuất) thì quá khó với mình. Vậy mình nhờ các bác trong GPE giúp với.
Mình đã chuẩn bị dữ liệu đầy đủ rồi: Có 12 tệp điểm của 12 lớp (phầm mềm xuất ra) mình đã tách mỗi tệp các sheet thành một tệp đặt trong một thư mục với tên của lớp đó (12 thư mục). Ở ngoài có tệp Ghep tep diem.xls. mình muốn khi chạy tệp này thì tiến hành ghép hoặc cập nhật điểm. Các bác giúp với. Cảm ơn.
Trường bạn sử dụng VEMIS để nhập điểm à?
Hôm trước tôi có 1 người bạn cũng có yêu cầu giống bạn, tôi đã viết code cho người bạn ấy. Bây giờ lười viết lại quá nên đưa lên đây luôn. Bạn tham khảo trong file đính kèm nhé. Hướng dẫn có ở trong file Tools.xls.
 

File đính kèm

Trường bạn sử dụng VEMIS để nhập điểm à?
Hôm trước tôi có 1 người bạn cũng có yêu cầu giống bạn, tôi đã viết code cho người bạn ấy. Bây giờ lười viết lại quá nên đưa lên đây luôn. Bạn tham khảo trong file đính kèm nhé. Hướng dẫn có ở trong file Tools.xls.

Cảm ơn bạn. Mình sẽ chạy thử nếu có vướng gì mong bạn giúp đỡ tiếp.
 
Mình đã chạy thấy tệp Tool.xls chạy tốt. Bạn cho mình hỏi lệnh để xử lý môn học nào thì nạp điểm vào sheet đó là lệnh nào? Mình muốn học hỏi tý mà vì phần này mình thấy khó nhất và quan trọng nhất nếu không sẽ nhầm điểm giữa các môn.
 
Mình đã chạy thấy tệp Tool.xls chạy tốt. Bạn cho mình hỏi lệnh để xử lý môn học nào thì nạp điểm vào sheet đó là lệnh nào? Mình muốn học hỏi tý mà vì phần này mình thấy khó nhất và quan trọng nhất nếu không sẽ nhầm điểm giữa các môn.
Chỉ đơn giản là khi tách ra thì mỗi file con có chứa 1 sheet có tên tương ứng (là 1 môn học). Nếu bạn đảm bảo được rằng trong quá trình sử dụng, tên sheet không bị thay đổi thì khi tổng hợp vào file chính, cứ file con chứa sheet tên gì thì dữ liệu từ sheet ấy sẽ được gán vào đúng sheet tương ứng trong file tổng. Chỉ là so sánh tên sheet và gán dữ liệu thôi mà.
Trong code trên file Tools.xls thì câu lệnh đó là câu này:
PHP:
Wb.Sheets(.ActiveSheet.Name).[E6:AD100].Value = .ActiveSheet.[E6:AD100].Value
(câu lệnh này nằm trong Sub CmdTongHop_Click)
 
Cảm ơn bạn mình hiểu rồi.
Bây giờ mình định thêm lệnh kiểm tra trước khi cập nhật dữ liệu kiểm tra xem tệp môn đó có lớp và cùng học kỳ với tệp điểm cần cập nhật không nếu trùng thì mới cập nhật không thì thoát. Nếu dựa vào tên tệp (trong tên tệp của mình khi xuất có kèm theo cả lớp và học kỳ) thì mình làm được rồi nhưng tên tệp GV họ có thể lại đổi lại khi họ mang về nên để chính xác thì phải lấy ở trong tệp cần cập nhật và tệp điểm bộ môn vậy thì lấy dữ liệu từ tệp điểm lớp cần cập nhttj như thế nào mình không lấy được bạn hướng dẫn mình với
 
Cảm ơn bạn mình hiểu rồi.
Bây giờ mình định thêm lệnh kiểm tra trước khi cập nhật dữ liệu kiểm tra xem tệp môn đó có lớp và cùng học kỳ với tệp điểm cần cập nhật không nếu trùng thì mới cập nhật không thì thoát. Nếu dựa vào tên tệp (trong tên tệp của mình khi xuất có kèm theo cả lớp và học kỳ) thì mình làm được rồi nhưng tên tệp GV họ có thể lại đổi lại khi họ mang về nên để chính xác thì phải lấy ở trong tệp cần cập nhật và tệp điểm bộ môn vậy thì lấy dữ liệu từ tệp điểm lớp cần cập nhttj như thế nào mình không lấy được bạn hướng dẫn mình với
Nếu để ý, bạn sẽ thấy tại ô C3 của các sheet có chứa 1 chuỗi mã, nó bao gồm các thông tin khối, lớp, môn, học kỳ, năm học và sĩ số. Mã này là duy nhất đối với mỗi sheet (bạn tham khảo trong bảng ở trong file đính kèm). Như vậy có thể dựa vào mã này để đảm bảo việc sao chép dữ liệu chính xác, không nhầm lẫn. Và để đảm bảo được việc này thì ta cần đảm bảo được tên sheet của các file con và file chủ không được thay đổi, cũng như ô chứa mã (ô C3) không bị thay đổi nội dung trong quá trình sử dụng. Muốn thực hiện điều này, ta cần 2 thao tác: Protect sheet để bảo vệ ô C3 và Protect workbook để đảm bảo tên sheet không bị thay đổi.

Mình điều chỉnh code một chút như sau:
1. Code tách file:
[GPECODE=vb]Const Pass As String = "GPE"
Private Sub CmdTach_Click()
Dim Ws As Worksheet, Wb As Workbook, DuongDan As String, LopHK As String, i As Long, SiSo As Long, FS
With Application
.DisplayAlerts = False: .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlCalculationManual
With Application.FileDialog(1)
.InitialFileName = ThisWorkbook.Path
.Title = "Chon file diem can tach..."
.FilterIndex = 3
.AllowMultiSelect = True: .Show
If .SelectedItems.Count = 0 Then Exit Sub
For i = 1 To .SelectedItems.Count
Set Wb = Workbooks.Open(.SelectedItems(i))
With Wb
DuongDan = ThisWorkbook.Path & "\" & Mid(.ActiveSheet.[A3], 7, 10)
LopHK = Mid(.ActiveSheet.[A3], 7, 10) & " HK" & Right(.ActiveSheet.[E2], 1) & " (" & Right(.ActiveSheet.[A2], 9) & ")_"
SiSo = .ActiveSheet.[A200].End(xlUp).Value
Set FS = CreateObject("Scripting.FileSystemObject")
If Not FS.FolderExists(DuongDan) Then MkDir DuongDan
For Each Ws In Wb.Worksheets
With Ws
.[E6:AD6].Resize(SiSo).Locked = False
.Protect Pass
.Copy
End With
ActiveWorkbook.Protect Pass, True, False
'Trong Excel 2003, neu khong chay duoc thi xoa ", 56" o cau lenh duoi day di
ActiveWorkbook.SaveAs DuongDan & "\" & LopHK & Ws.Name & ".xls", 56
ActiveWorkbook.Close
Next
.Close False
End With
Next
End With
.DisplayAlerts = True: .ScreenUpdating = True: .EnableEvents = True: .Calculation = xlCalculationAutomatic
End With
Unload Me
End Sub[/GPECODE]
Trong code trên, câu lệnh thứ 22 và 23 nhằm mục đích khóa sheet lại, chỉ cho edit vùng nhập điểm (cũng là nhằm bảo vệ ô C3 chứa chuỗi mã). Còn câu lệnh thứ 26 nhằm khóa file con lại, không cho thay đổi cấu trúc file con (chẳng hạn thêm, xóa, đổi tên sheet).

2. Code tổng hợp file:
[GPECODE=vb]Private Sub CmdTongHop_Click()
Dim i As Long, Wb As Workbook
On Error Resume Next
With Application
.DisplayAlerts = False: .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlCalculationManual
End With
With Application.FileDialog(1)
.InitialFileName = ThisWorkbook.Path
.Title = "Chon file diem can tong hop"
.FilterIndex = 3
.AllowMultiSelect = False: .Show
If .SelectedItems.Count = 0 Then Exit Sub
Set Wb = Workbooks.Open(.SelectedItems(1))
End With
With Application.FileDialog(1)
.InitialFileName = ThisWorkbook.Path
.Title = "Chon cac file diem thanh phan"
.FilterIndex = 3
.AllowMultiSelect = True: .Show
If .SelectedItems.Count = 0 Then Exit Sub
For i = 1 To .SelectedItems.Count
Workbooks.Open .SelectedItems(i)
With ActiveWorkbook
If Wb.Sheets(.ActiveSheet.Name).[C3] = .ActiveSheet.[C3] Then _
Wb.Sheets(.ActiveSheet.Name).[E6:AD100].Value = .ActiveSheet.[E6:AD100].Value
.Close False
End With
Next
End With
With Application
.DisplayAlerts = True: .ScreenUpdating = True: .EnableEvents = True: .Calculation = xlCalculationAutomatic
End With
Unload Me
End Sub[/GPECODE]
Trong code này, dòng lệnh 24, 25 nhằm mục đích kiểm tra mã ở ô C3 của file con và file chủ, nếu trùng khớp thì mới copy dữ liệu qua.
 

File đính kèm

Cảm ơn bạn mình đọc trên GPE cũng đã kiểm soát được khi nhập các file nhưng cách làm của bạn tổng quát hơn, mình không biết khóa các file để bảo vệ nó nên nếu người sủ dụng mà thay đổi thì không kiểm soát được. Rất cảm ơn bạn. Chúc bạn một năm mới mạnh khỏe hạnh phúc và giúp được nhiều hơn nửa trên GPE.
Tiện đây mình có một vấn để nữa muốn hỏi bạn một chút.
Mình đang hoàn thiện tệp tính điểm cho GV trường mình. Mình muốn khi chọn lớp, môn học, học kỳ thì sẽ hiện ra cơ số điểm của môn hoc đó trong học kỳ đó. Cơ số điểm các môn học trong trường của từng khối và học kỳ cho trong một bảng làm thế nào để tìm và đưa ra chính xác. Mình đã thử hàm VLOOKUP, HLOOKUP nhưng bảng nhiều tầng phức tạp quá nên không ra chính xác. Nhờ bạn và các bạn trên GPE giúp đỡ với. Tệp dữ liệu mẫu có kèm theo dưới đây
 

File đính kèm

Cảm ơn bạn mình đọc trên GPE cũng đã kiểm soát được khi nhập các file nhưng cách làm của bạn tổng quát hơn, mình không biết khóa các file để bảo vệ nó nên nếu người sủ dụng mà thay đổi thì không kiểm soát được. Rất cảm ơn bạn. Chúc bạn một năm mới mạnh khỏe hạnh phúc và giúp được nhiều hơn nửa trên GPE.
Tiện đây mình có một vấn để nữa muốn hỏi bạn một chút.
Mình đang hoàn thiện tệp tính điểm cho GV trường mình. Mình muốn khi chọn lớp, môn học, học kỳ thì sẽ hiện ra cơ số điểm của môn hoc đó trong học kỳ đó. Cơ số điểm các môn học trong trường của từng khối và học kỳ cho trong một bảng làm thế nào để tìm và đưa ra chính xác. Mình đã thử hàm VLOOKUP, HLOOKUP nhưng bảng nhiều tầng phức tạp quá nên không ra chính xác. Nhờ bạn và các bạn trên GPE giúp đỡ với. Tệp dữ liệu mẫu có kèm theo dưới đây
Mình giải quyết vấn đề này như sau:
1. Nhập vào 2 ô E22 và H22 các số 1, 2 và định dạng cho 2 ô này theo kiểu "Hệ số "0":"
2. Sử dụng công thức sau cho ô F22 rồi copy cho ô G22:
Mã:
=OFFSET($B$5,MATCH($G$20,$B$6:$B$18,0),(LEFT($E$20)-6)*4+($I$20-1)*2+E22)

Để kiểm tra, bạn có thể cho hệ số của 1 môn học nào đó nhận các giá trị từ 1 đến 16 (từ trái sang phải), sau đó chọn môn này và thay đổi các thông tin Lớp và HK, bạn sẽ dễ dàng kiểm tra kết quả.
 

File đính kèm

Hi các ace,

Mình đang gặp trường hợp như sau:

- Mình có 50 file excel, trong các file này thì có 1 sheet duy nhất, trong sheet này có dữ liệu khác nhau.

- Cần tổng hợp dữ liệu của 50 file này, sao cho dữ liệu nằm trên 1 sheet.

- Mục đích cuối cùng là có thể dùng các hàm đếm, để có thể đếm các dữ liệu này.

Mong ace giúp mình với. Thanks all.
 
Hi các ace,

Mình đang gặp trường hợp như sau:

- Mình có 50 file excel, trong các file này thì có 1 sheet duy nhất, trong sheet này có dữ liệu khác nhau.

- Cần tổng hợp dữ liệu của 50 file này, sao cho dữ liệu nằm trên 1 sheet.

- Mục đích cuối cùng là có thể dùng các hàm đếm, để có thể đếm các dữ liệu này.

Mong ace giúp mình với. Thanks all.
Bạn nên đưa lên đây vài file con và nêu cấu trúc file tổng hợp, có như vậy thì mới đưa ra giải pháp được, chứ chỉ nói khơi khơi thế này thì đành chịu thua.
 
Bạn nên đưa lên đây vài file con và nêu cấu trúc file tổng hợp, có như vậy thì mới đưa ra giải pháp được, chứ chỉ nói khơi khơi thế này thì đành chịu thua.

Mình gửi bạn file đính kèm, mình mô tả lại để bạn rõ hơn:
- Khi giải nén file đính kèm, sẽ có 4 thư mục với tên khác nhau.
- Trong 4 thư mục này, có chứa 1 file định dạng TXT (tên file TXT giống nhau)

Mong muốn của mình là tổng hợp dữ liệu của 4 file TXT, nằm trên cùng 1 sheet của file excel.

Nhờ bạn hỗ trợ giúp. Thanks.
 

File đính kèm

Tổng hợp nhiều file excel thành 1 sheet tổng hợp

CÁC ANH CHỊ TRONG DIỄN ĐÀN GIẢI PHÁP EXECL ƠI! GIÚP MÌNH VỚI:
Mình có nhiều file excel danh sách bệnh nhân khám chữa bệnh hàng ngày có các cột giống nhau, nhưng để tổng hợp lại thành một sheet cho 1 tháng bao gồm tất cả các file trên thì làm thế nào?
 

File đính kèm

CÁC ANH CHỊ TRONG DIỄN ĐÀN GIẢI PHÁP EXECL ƠI! GIÚP MÌNH VỚI:
Mình có nhiều file excel danh sách bệnh nhân khám chữa bệnh hàng ngày có các cột giống nhau, nhưng để tổng hợp lại thành một sheet cho 1 tháng bao gồm tất cả các file trên thì làm thế nào?

Gửi bác tham khảo, PW RAR 1234
 

File đính kèm

Lần chỉnh sửa cuối:
Gửi bác tham khảo, PW RAR trong hộp message của bác nhé
Cao siêu thế nhỉ! Nén lại, đưa file lên đây mà bạn còn đặt password và chỉ gửi riêng cho người hỏi thì tôi nghĩ là 2 bạn nên trao đổi riêng với nhau, không nên trao đổi trên GPE làm gì.
 
Cao siêu thế nhỉ! Nén lại, đưa file lên đây mà bạn còn đặt password và chỉ gửi riêng cho người hỏi thì tôi nghĩ là 2 bạn nên trao đổi riêng với nhau, không nên trao đổi trên GPE làm gì.

Cao siêu đếch gì, hôm trước có up lên 1 bài có thằng sủa nói này nọ, Hôm nay tôi ko đưa lên nữa ông lại ý kiến ý cò
 
Cao siêu đếch gì, hôm trước có up lên 1 bài có thằng sủa nói này nọ, Hôm nay tôi ko đưa lên nữa ông lại ý kiến ý cò
Bạn đã dùng ngôn từ không phù hợp với GPE, đồng thời xúc phạm thành viên khác. Tôi ban nick bạn 1 tháng.
 
mình cũng ko biết password cua bạn hoangdv là gì nữa mà
 
Mình có vấn đề này nhờ anh em GPE giúp đỡ: mình có khoảng 150 file Exel tên Báo cáo có 1 sheet duy nhất và cần tổng hợp lại thành file Tổng hợp như file mình gửi.
Anh em giúp mình làm sao để hợp dùm.
Cám ơn anh em nhiều.
 

File đính kèm

Web KT

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

Back
Top Bottom