Nhờ anh chị làm giúp bảng thời khóa biểu (3 người xem)

Liên hệ QC

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

maiphuong2911

Thành viên mới
Tham gia
18/7/09
Bài viết
17
Được thích
0
Em nhờ anh/chị làm giúp em file thời khóa biểu.
Trong file em có 3 sheet. Sheet 1 là file gốc. Ở đó là thời khóa biểu của 1 lớp. File gốc là tên môn học của lớp đấy nhưng em đã thay tên môn học bằng tên lớp/giáo viên.

Trong bảng đó có thứ, có tuần, có tiết và có phòng học.
Em đã gộp tất cả các thông tin đó thành 1 file database. Được viết dưới dạng 2class 2C1203L/NhatNK53
Trong đó: 2 là tuần thứ 2, Class 2 (hoặc lab 2) là phòng học (Em có class 1/2/3 và lab 1/2/3). C1203L/NhatNK là lớp/giáo viên, 5 là tiết thứ 5 và 3 là thứ 3

Em muốn nhờ anh/ chị từ file database lập công thức để xếp các lớp/giáo viên vào đúng vị trí tuần, thứ, phòng, tiết ah.

Em cám ơn anh/chị
 

File đính kèm

Em nhờ anh/chị làm giúp em file thời khóa biểu.
Trong file em có 3 sheet. Sheet 1 là file gốc. Ở đó là thời khóa biểu của 1 lớp. File gốc là tên môn học của lớp đấy nhưng em đã thay tên môn học bằng tên lớp/giáo viên.

Trong bảng đó có thứ, có tuần, có tiết và có phòng học.
Em đã gộp tất cả các thông tin đó thành 1 file database. Được viết dưới dạng 2class 2C1203L/NhatNK53
Trong đó: 2 là tuần thứ 2, Class 2 (hoặc lab 2) là phòng học (Em có class 1/2/3 và lab 1/2/3). C1203L/NhatNK là lớp/giáo viên, 5 là tiết thứ 5 và 3 là thứ 3

Em muốn nhờ anh/ chị từ file database lập công thức để xếp các lớp/giáo viên vào đúng vị trí tuần, thứ, phòng, tiết ah.

Em cám ơn anh/chị
Theo mình, bài này mà dùng công thức chắc "tèo" quá, dùng VBA nhé, không biết gì về VBA vẫn 'chơi" tốt
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Vung, Mg, I, A, Lop, Hang, Cot, Kq
    If Target.Address = "$B$1" Then
        Set Lop = [C3:H3]
        Set Vung = Sheets("database").Range(Sheets("database").[A1], Sheets("database").[A10000].End(xlUp))
        ReDim Mg(1 To Vung.Rows.Count, 1 To 5)
        For I = 1 To Vung.Rows.Count
            Mg(I, 1) = IIf(IsNumeric(Left(Vung(I), 2)), Val(Left(Vung(I), 2)), Val(Left(Vung(I), 1)))
            Mg(I, 2) = Mid(Vung(I), Len(Mg(I, 1)) + 1, InStr(4, Vung(I), "C") - Len(Mg(I, 1) + 1) - 1)
            Mg(I, 3) = Mid(Vung(I), Len(Mg(I, 1)) + Len(Mg(I, 2)) + 1, Len(Vung(I)) - Len(Mg(I, 1)) - Len(Mg(I, 2)) - 3)
            Mg(I, 4) = Val(Left(Right(Vung(I), 2), 1))
            Mg(I, 5) = Val(Right(Vung(I), 1))
        Next I
            ReDim Kq(1 To 36, 1 To 6)
            For I = 1 To UBound(Mg)
                If Mg(I, 1) = [B1] Then
                    Cot = Application.WorksheetFunction.Match(Mg(I, 2), Lop, 0)
                    Hang = (Mg(I, 5) - 2) * 6 + Mg(I, 4)
                    Kq(Hang, Cot) = Mg(I, 3)
                End If
            Next I
        [C4].Resize(36, 6) = Kq
    End If
End Sub
Thay đổi giá trị ở cell [B1] sheet "lam tkb" xem kết quả
Bạn kiểm tra giúp mình vì nhìn nó thấy.....ghê quá, đau cả đầu
Híc
 

File đính kèm

Theo mình, bài này mà dùng công thức chắc "tèo" quá, dùng VBA nhé, không biết gì về VBA vẫn 'chơi" tốt
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Vung, Mg, I, A, Lop, Hang, Cot, Kq
    If Target.Address = "$B$1" Then
        Set Lop = [C3:H3]
        Set Vung = Sheets("database").Range(Sheets("database").[A1], Sheets("database").[A10000].End(xlUp))
        ReDim Mg(1 To Vung.Rows.Count, 1 To 5)
        For I = 1 To Vung.Rows.Count
            Mg(I, 1) = IIf(IsNumeric(Left(Vung(I), 2)), Val(Left(Vung(I), 2)), Val(Left(Vung(I), 1)))
            Mg(I, 2) = Mid(Vung(I), Len(Mg(I, 1)) + 1, InStr(4, Vung(I), "C") - Len(Mg(I, 1) + 1) - 1)
            Mg(I, 3) = Mid(Vung(I), Len(Mg(I, 1)) + Len(Mg(I, 2)) + 1, Len(Vung(I)) - Len(Mg(I, 1)) - Len(Mg(I, 2)) - 3)
            Mg(I, 4) = Val(Left(Right(Vung(I), 2), 1))
            Mg(I, 5) = Val(Right(Vung(I), 1))
        Next I
            ReDim Kq(1 To 36, 1 To 6)
            For I = 1 To UBound(Mg)
                If Mg(I, 1) = [B1] Then
                    Cot = Application.WorksheetFunction.Match(Mg(I, 2), Lop, 0)
                    Hang = (Mg(I, 5) - 2) * 6 + Mg(I, 4)
                    Kq(Hang, Cot) = Mg(I, 3)
                End If
            Next I
        [C4].Resize(36, 6) = Kq
    End If
End Sub
Thay đổi giá trị ở cell [B1] sheet "lam tkb" xem kết quả
Bạn kiểm tra giúp mình vì nhìn nó thấy.....ghê quá, đau cả đầu
Híc
Hic, bạn ơi, mình đã sửa ở cell B1 mà vẫn ko thấy nó thay đổi kết quả j cả. Vẫn là những số liệu đó.
Hơn nữa tên thầy giáo của mình là TuNN, KhoaNV, nhưng ở đây mình thấy mất 1 chữ ở cuối, chỉ còn là TuN và KhoaN

Cám ơn bạn trước nhé
 
Hic, bạn ơi, mình đã sửa ở cell B1 mà vẫn ko thấy nó thay đổi kết quả j cả. Vẫn là những số liệu đó.
Hơn nữa tên thầy giáo của mình là TuNN, KhoaNV, nhưng ở đây mình thấy mất 1 chữ ở cuối, chỉ còn là TuN và KhoaN

Cám ơn bạn trước nhé
1)- Hãy tìm trên diễn đàn bài hướng dẫn cho code chạy được trong Excel 2007, nếu tìm không ra thì la lên nhờ anh Tùng Nguyễn hoặc anh Ba Tê chỉ cho cái zụ này
2)- Mình đã sửa lỗi tên thiếu 1 ký tự, nhìn chóng mặt thật, cóc kiểm tra nổi
Híc
 

File đính kèm

1)- Hãy tìm trên diễn đàn bài hướng dẫn cho code chạy được trong Excel 2007, nếu tìm không ra thì la lên nhờ anh Tùng Nguyễn hoặc anh Ba Tê chỉ cho cái zụ này
2)- Mình đã sửa lỗi tên thiếu 1 ký tự, nhìn chóng mặt thật, cóc kiểm tra nổi
Híc
Bạn ơi, cho mình hỏi hiện tại mình đã làm được rồi, khi sửa số của ô B1 là nó tự nhảy rồi. Bạn cho mình hỏi giờ mình muốn cập nhật thêm dữ liệu ở sheet database (tức là bổ sung thêm 1 lớp nữa) thì mình sẽ insert khoảng ở giữa hay là mình ghi liền phía dưới từ dòng mới A859
 
Bạn ơi, cho mình hỏi hiện tại mình đã làm được rồi, khi sửa số của ô B1 là nó tự nhảy rồi. Bạn cho mình hỏi giờ mình muốn cập nhật thêm dữ liệu ở sheet database (tức là bổ sung thêm 1 lớp nữa) thì mình sẽ insert khoảng ở giữa hay là mình ghi liền phía dưới từ dòng mới A859
Bạn cứ thử thêm đi, thêm ở đầu, giữa, hay đuôi chỗ nào cũng được, code trong bài cho bạn sử dụng cột data đó tới 10.000 dòng
Bổ xung bi nhiêu lớp cũng "chơi", miễn lớp phải bắt đầu bằng chữ "C" ( hình như viết tắt của Class thì phải)
Thân
 
Bạn cứ thử thêm đi, thêm ở đầu, giữa, hay đuôi chỗ nào cũng được, code trong bài cho bạn sử dụng cột data đó tới 10.000 dòng
Bổ xung bi nhiêu lớp cũng "chơi", miễn lớp phải bắt đầu bằng chữ "C" ( hình như viết tắt của Class thì phải)
Thân
Ôi thế chữ khác thì sao ah. Vì mình còn có cả chữ T nữa cơ ah :)

Giúp mình với
 
Nhờ mọi người giúp cho file này với

Chào mọi người, minh có file d này bị bó tay lâu nay rồi, hôn nay lên GPE nhờ mọi người giúp mình với
Xinlảm ơn
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom