Cho em hỏi có cách nào nhâp điểm nhanh bằng Macro có file đính kèm? (1 người xem)

Liên hệ QC

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

ongtrungducmx25

Thành viên gạo cội
Tham gia
5/2/07
Bài viết
2,077
Được thích
1,987
Nghề nghiệp
GV
xin cho hỏi có cách nào nhập điểm nhanh không cần phải nhấn phím Tab hoặc enter không khi em nhập điểm từ {0;1;.....;10} có cách nàp nhập điểm liên tục không em có file đính kèm nhờ báo giải đáp thất mất của em ?@$@!^%
 
Lần chỉnh sửa cuối:
Chào bạn
- Bạn rất chu đáo khi gởi file mẫu và đoạn film minh hoạ rất rõ ràng.
- Vấn đề bạn nêu ra mình nghĩ : nếu hoàn thiện được sẽ rất thiết thực với những thầy cô làm điểm trên Excel.
- Mình thực hiện dựa trên file mẫu của bạn. Lưu ý :
1/ Bạn chọn vùng cần nhập điểm trước khi click nút <Nhap Diem>
2/ Nhập điểm từ 0 đến 9 thì bình thường. Riêng điểm 10 thì bạn nhập bằng phím "+".
Mong được các anh chị hoàn thiện thêm.

TDN
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi có thêm ý kiến như sau: trong thực tế số điểm hệ số 1 của các học sinh là không giống nhau, vậy làm thế nào để máy biết để trống những ô sẽ không có điểm.
 
ngo15 đã viết:
Tôi có thêm ý kiến như sau: trong thực tế số điểm hệ số 1 của các học sinh là không giống nhau, vậy làm thế nào để máy biết để trống những ô sẽ không có điểm.
Chào bạn
Bạn có thể nói rõ hơn hoặc cho ví dụ cụ thể không. Ý bạn muốn chương trình nhận biết ô không có điểm trong quá trình nhập điểm hay trong công thức tính điểm trung bình ?

TDN
 
Vấn đề đơn giản, hình như người nhập liệu hơi lười. Mình nghĩ nhập trực tiếp vẫn đơn giản hơn

Nho sĩ tedaynui đã lỡ làm User Form thì làm cho hoành tráng luôn :
Làm 1 Form :

1. Combobox chọn lựa tên người
2. Các combobox (hoặc textbox) để lựa chọn điểm.

Sau khi chạy đến ô cuối cùng, Nhấp OK là tên người được chuyển đến người tiếp theo

Có 1 nút sửa cho phép sửa điểm luôn

Thân!
 
Chào các bạn, tôi xin góp thêm ý kiến.
Sổ điểm cá nhân của mỗi giáo viên gồm các cột: Điểm hệ số 1, Điểm hệ số 2, Điểm học kì. . ., tại mỗi cột các điểm được viết liền nhau cách nhau bởi 1 khoảng trắng.
Vì vậy
- Phần nhập điểm nên thiết kế nhập theo từng loại điểm hệ số. Khi nhập thì viết liền (điểm 10 được nhập bằng 1 kí tự đại diện - như tedaynui đã nêu), sau khi nhập xong thì chuyển vào ô chứa điểm và các điểm cách nhau bởi 1 khoảng trắng. Nếu đã có điểm thì bổ sung vào cuối.
- Phần công thức tính điểm xử lý theo số điểm hiện có của mỗi loại hệ số.
 
Chào Hiếu
- Mình không biết cách nào để vừa gõ xong 1 số thì nó nhập điểm đồng thời nhảy sang ô kế tiếp nên mới mượn Form làm trung gian.
- Tất nhiên, như Hiếu nhận xét nếu tạo Form nhập điểm thì trông có vẻ hoành tráng và chuyên nghiệp hơn. Nhưng mình thấy thao tác trên sheet vẫn nhanh hơn và trong quá trình nhập điểm dễ rà soát, kiểm tra hơn Form (đây chỉ là ý kiến chủ quan của mình thôi nha, hi hi)

Thân.
 
Lần chỉnh sửa cuối:
Chào Chibi
Không biết mình hiểu có đúng như ý Chibi không, ý của Chibi là một ô sẽ chứa nhiều điểm và cách nhau bằng khoảng trắng. ví dụ : "5 8 10 7" có phải ý Chibi vậy không ?
Theo mình thì mỗi điểm 1 cột sẽ thuận tiện cho việc tính toán hơn. Đồng thời, khi xuất ra bảng điểm sẽ thẫm mỹ hơn
Ng Van A ------- "9 2 4 5"
Ng Van B ------- "10 10 10 10"
Nhìn thấy không ổn lắm khi so le như vậy

TDN
 
tedaynui đã viết:
Chào Hiếu
- Mình không biết cách này để vừa gõ xong 1 số thì nó nhập điểm đồng thời nhảy sang ô kế tiếp nên mới mượn Form làm trung gian.
- Tất nhiên, như Hiếu nhận xét nếu tạo Form nhập điểm thì trông có vẻ hoành tráng và chuyên nghiệp hơn. Nhưng mình thấy thao tác trên sheet vẫn nhanh hơn và trong quá trình nhập điểm dễ rà soát, kiểm tra hơn Form (đây chỉ là ý kiến chủ quan của mình thôi nha, hi hi)

Thân.

Bác đọc kỹ nhé
Vấn đề đơn giản, hình như người nhập liệu hơi lười. Mình nghĩ nhập trực tiếp vẫn đơn giản hơn

Cách của bác cũng rất hay đấy.

Thân!
 
Điểm HS 1 của h/s A: 5,7,8. Của h/s B: 8,9,10,7. Của h/s C: 2,4,7,9,6,3. Nhưng trong giải pháp của bạn máy cứ nhẩy hết các ô của HS1 mới sang HS2. Và khi số điểm của HS1 khác nhau thì công thức tính đỉêm TB cũng sẽ sai.
 
ngo15 đã viết:
Điểm HS 1 của h/s A: 5,7,8. Của h/s B: 8,9,10,7. Của h/s C: 2,4,7,9,6,3. Nhưng trong giải pháp của bạn máy cứ nhẩy hết các ô của HS1 mới sang HS2. Và khi số điểm của HS1 khác nhau thì công thức tính đỉêm TB cũng sẽ sai.
Chào bạn
Nếu muốn bỏ ô, nhảy sang ô kế tiếp thì cũng đơn giản thôi. Bạn làm tương tự như phím "+" (thay cho 10 điểm), bạn có thể thêm trong code dấu "." thì không nhập điểm mà nhảy sang ô kế tiếp.
Bạn có thể tải lại File ở bài số #2
Chúc bạn thành công

TDN
 
Lần chỉnh sửa cuối:
ongtrungducmx25 đã viết:
xin cho hỏi có cách nào nhập điểm nhanh không cần phải nhấn phím Tab hoặc enter không khi em nhập điểm từ {0;1;.....;10} có cách nàp nhập điểm liên tục không em có file đính kèm nhờ báo giải đáp thất mất của em ?@$@!^%
Bạn có thể dùng Onkey để kiểm tra phím bấm. Để nhập nhanh, tôi quy định số 0, 1, 2, ..., 9 nhập bình thường. Số 10 nhập bằng phím "m".
Hoạt động của Onkey nhu sau:
- Khi mở nhapdiemnhanh01.xls, thủ tục Auto_Open hoạt động và gán Onkey vào các phím và thủ tục tương ứng.
- Bạn chọn trước 1 vùng, nhập điểm vào, ô hoạt động (Activate) sẽ dời từ trái sang phải, từ trên xuống dưới vùng chọn.
- Muốn nhập bình thường bạn phải kết thúc nhapdiemnhanh01.xls hoặc chạy Sub Auto_Close để giải phóng Onkey

Mã:
Sub Auto_Open()
Application.Onkey "0", "Khong"
Application.Onkey "1", "Mot"
Application.Onkey "2", "Hai"
Application.Onkey "3", "Ba"
Application.Onkey "4", "Bon"
Application.Onkey "5", "Nam"
Application.Onkey "6", "Sau"
Application.Onkey "7", "Bay"
Application.Onkey "8", "Tam"
Application.Onkey "9", "Chin"
Application.Onkey "m", "Muoi"
End Sub
 
Sub Auto_Close()
Application.Onkey "0"
Application.Onkey "1"
Application.Onkey "2"
Application.Onkey "3"
Application.Onkey "4"
Application.Onkey "5"
Application.Onkey "6"
Application.Onkey "7"
Application.Onkey "8"
Application.Onkey "9"
Application.Onkey "m"
End Sub
 
Sub Khong()
ActiveCell.Value = 0
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Mot()
ActiveCell.Value = 1
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Hai()
ActiveCell.Value = 2
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Ba()
ActiveCell.Value = 3
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Bon()
ActiveCell.Value = 4
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Nam()
ActiveCell.Value = 5
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Sau()
ActiveCell.Value = 6
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Bay()
ActiveCell.Value = 7
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Tam()
ActiveCell.Value = 8
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Chin()
ActiveCell.Value = 9
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub Muoi()
ActiveCell.Value = 10
r = ActiveCell.Row
c = ActiveCell.Column
NhapDiem r, c
End Sub
 
Sub NhapDiem(r, c)
c1 = Selection.Column
c2 = Selection.Columns.Count + c1 - 1
If c < c2 Then
  Cells(r, c + 1).Activate
ElseIf c = c2 Then
  Cells(r + 1, c1).Activate
End If
End Sub
 

File đính kèm

Chào bạn tedaynui,

Trong thực tế, điểm kiểm tra của học sinh có thể là số thập phân. Bạn có thể chỉnh sửa file nhapdiemnhanh một chút nữa không?

Xin cảm ơn
 
phamduylong đã viết:
Bạn có thể dùng Onkey để kiểm tra phím bấm. Để nhập nhanh, tôi quy định số 0, 1, 2, ..., 9 nhập bình thường. Số 10 nhập bằng phím "m".
Chào Long
- Cách của bạn có một hạn chế mà từ lâu mình không khắc phục được. Đó chính là lệnh Onkey chỉ có tác dụng trên bàn phím chữ, những số phần NumPad thì không có tác dụng. Mà nhập điểm thì thường sử dụng bàn phím số Numpad (bên phải) sẽ thuận tiện hơn.
- Mặt khác khi mở file nhập điểm thì không thể đánh chữ được vì hệ thống số từ 1 đến 9 đã bị gán Macro.

TDN
 
thanhle đã viết:
Trong thực tế, điểm kiểm tra của học sinh có thể là số thập phân. Bạn có thể chỉnh sửa file nhapdiemnhanh một chút nữa không?
Chào bạn
Bạn có thể nói rõ cách cho điểm thập phân như thế nào không ? Vì nếu có qui luật thì tất nhiên sẽ thực hiện được. Ví dụ :
1/ Thực hiện được khi :
+ Chỉ là những số nguyên : 8 ; 9 ; 10 ; 6 ; ...
+ phần thập phân chỉ có 1 chữ số : 8.5 ; 6.0 ; 7.5 ...
+ phần thập phân có tối đa 2 chữ số : 2.5 ; 7.25 ; 9.0 ; ... (Theo mình cái này cũng khá phức tạp)
2/ Không thể thực hiện được nếu phần thập phân tùy ý : 9.0 ; 6.25 ; 7.125 ...

TDN
 
phamduylong đã viết:
Bạn có thể dùng Onkey để kiểm tra phím bấm. Để nhập nhanh, tôi quy định số 0, 1, 2, ..., 9 nhập bình thường. Số 10 nhập bằng phím "m".
Hoạt động của Onkey nhu sau:
- Khi mở nhapdiemnhanh01.xls, thủ tục Auto_Open hoạt động và gán Onkey vào các phím và thủ tục tương ứng.
- Bạn chọn trước 1 vùng, nhập điểm vào, ô hoạt động (Activate) sẽ dời từ trái sang phải, từ trên xuống dưới vùng chọn.
- Muốn nhập bình thường bạn phải kết thúc nhapdiemnhanh01.xls hoặc chạy Sub Auto_Close để giải phóng Onkey

File của bác rất hay nhưng hình như hơi dài, bác có thể rút ngắn lại đi nhé.

Thân!
 
thanhle đã viết:
Chào bạn tedaynui,
Trong thực tế, điểm kiểm tra của học sinh có thể là số thập phân. Bạn có thể chỉnh sửa file nhapdiemnhanh một chút nữa không?
Xin cảm ơn
Trong thực tế, điểm kiểm tra (miệng, viết) của học sinh không có phần thập phân. Chỉ có điểm kiểm tra định kỳ (8 tuần, học kỳ I, 24 tuần và học kỳ II) mới lấy phần lẻ.
Trong sổ điểm cá nhân của các giáo viên (ở nơi mình) các điểm kiểm tra mỗi loại (hệ số 1, hệ số 2) luôn được viết trên cùng 1 cột và chỉ cách nhau 1 khoảng trắng.
 
Chào các bạn.
+Lâu nay, trên GPE mình thấy có một số bài viết vận dụng excel trong giáo dục. Để tiện cho các bạn tham khảo, mình gởi Quy chế mới nhất của bộ giáo dục về đánh giá, xếp loại HS ở các trường THCS và THPT đang được áp dụng trong nhà trường hiện nay. ( trong file đính kèm).
+Về vấn đề các bạn đang thảo luận, mình xin có vài ý kiến:
-Về cách nhập điểm: nhập trực tiếp trên sheet tốt hơn nhập trên form. Tuy nhiên phải tìm ra được một biện pháp hoàn chỉnh. Nếu không, thì tạm thời dùng cách của tedaynui.
-Về thiết kế mẫu mã sổ điểm: phải có nhiều cột phân ra 4 vùng (miệng-15'-1tiết trở lên-học kỳ) hoặc 3 vùng ( kiểm tra thường kỳ-kiểm tra định kỳ-kiểm tra học kỳ). Giữa các vùng, không nên có khoảng trắng vì sẽ bất tiện khi nhập điểm. Mỗi vùng có nhiều cột điểm tuỳ theo quy định của từng môn học. Mỗi cột chỉ nhập 1 điểm để tiện việc tính toán.
-Về việc nhập điểm lẻ: theo quy chế, điểm kiểm tra thường kỳ (15') nếu có câu trắc nghiệm thì có thể cho điểm lẻ. Kiểm tra định kỳ và học kỳ có thể cho điểm lẻ. Điểm lẻ chỉ gồm 1 chữ số thập phân sau khi làm tròn số. Các bạn nên áp dụng theo quy chế để xây dựng chương trình mang tính phổ quát.
 

File đính kèm

Trả lời chung các bạn:
1. Có thể rút ngắn macro bằng cách loại bỏ những dòng lặp lại:
Mã:
Sub Muoi()
ActiveCell.Value = 10
NhapDiem
End Sub
 
Sub NhapDiem()
r = ActiveCell.Row
c = ActiveCell.Column
c1 = Selection.Column
c2 = Selection.Columns.Count + c1 - 1
If c < c2 Then
  Cells(r, c + 1).Activate
ElseIf c = c2 Then
  Cells(r + 1, c1).Activate
End If
End Sub
Các macro Khong, Mot, Hai, ... cũng làm như vậy.
2. Để có thể bật tắt chức năng nhập điểm, tôi gán phím tắt vào macro như sau:
Bật: Ctrl+Shift+O mở macro OpenKey
Tắt: Ctrl+Shift+C mở macro Auto_Close, hoặc bạn tắt nhapdiemnhanh2.xls cũng tắt chức năng này.
Các bạn có thể tham khảo thêm trong nhapdiemnhanh2.xls
3. Sử dụng bàn phím số tôi chưa giải quyết được.
 

File đính kèm

Lần chỉnh sửa cuối:
Xin chào
- Mình thấy để thuận tiện, bác nào có file bảng điểm tương đối hoàn chỉnh về hình thức thì ta Up lên rồi mọi người dựa trên file đó xây dựng và góp ý sẽ thuận tiện hơn, đỡ mất thời gian hơn.
- Về phần nhập điểm có điểm lẻ và phần thập phân có một chữ số, mình muốn hỏi thêm là chỉ có #.5 (7.5 ; 6.5 ...) hay là tùy ý ( 6.2 ; 7.1 ; 9.8 ; 4.5 ...) các bác đừng giận vì hỏi linh tinh vì thật tình mình không nắm cách cho điểm THCS. Nếu điểm lẻ chỉ là điểm rưỡi (#.5) thì chắc cũng dễ giải quyết thôi.

TDN
 
-Mình gởi các bạn 2 loại bảng điểm THCS và PTTH theo quy chế mới của Bộ giáo dục. Mong các bạn góp ý thêm.
-Về điểm lẻ, các bạn đọc Chương 3-Điều 8 của Quyết định 40 sẽ thấy quy định duy nhất là cho điểm lẻ đến 1 số thập phân sau khi đã làm tròn. Có nghĩa là điểm lẻ cho tuỳ ý miễn là chỉ có 1 số lẻ.
Thân.
 

File đính kèm

Chào các bạn
Vì là phần thập phân chỉ có 1 chữ số, mình nghĩ để nhập điểm nhanh thì ta sẽ nhập như sau :
điểm ----- phím nhập
7.0 ------ 70
8.0 ------ 80
5.6 ------ 56
7.8 ------ 78
9.9 ------ 99
10 ------- +
Các bạn cho ý kiến xem có cách nào khác không ?
TDN
 
Cách này được đấy bác ạ.
Vậy cho đỡ rắc rối.
 
phien bang nhap diem va thong ke học sinh

Cám ơn các bạn đã giúp mình cảI thiện phần nhập điểm nhanh những đã giúp mình thì giúp cho đến nơi ,làm sau có thể đếm được số học sinh theo tiêu chuẩn UseForm
X:nữ
khoảng trắng : nam

Trong đó :
nữ = nữ
nữ DT là nữ dân tộc cụ thể là Khmer (khm)
DT(là dân tộc )=nữ DT + nam DT (nam khmer )
Có kèm theo Macro gồm Toán1(toán học kì I), Toán2(toán học kì II), Toáncn(toán cả năm)
Có thể tạo thành file chạy tự động trên thanh công cụ Standard
 

File đính kèm

ongtrungducmx25 đã viết:
Cám ơn các bạn đã giúp mình cảI thiện phần nhập điểm nhanh những đã giúp mình thì giúp cho đến nơi ,làm sau có thể đếm được số học sinh theo tiêu chuẩn UseForm
X:nữ
khoảng trắng : nam
Trong đó :
nữ = nữ
nữ DT là nữ dân tộc cụ thể là Khmer (khm)
DT(là dân tộc )=nữ DT + nam DT (nam khmer )
Có kèm theo Macro gồm Toán1(toán học kì I), Toán2(toán học kì II), Toáncn(toán cả năm)
Có thể tạo thành file chạy tự động trên thanh công cụ Standard
Đề nghị bạn xây dựng hoàn chỉnh cơ sở dữ liệu, sau đó xây dựng các chức năng phục vụ khai thác cơ sở dữ liệu đó - Có thể sử dụng các bài viết đã nêu. Không nên chắp vá như thế này khó theo dõi và hoàn thiện được.
 
Về phần thập phân của điểm kiểm tra định kỳ, theo qui chế của Bộ GDĐT chỉ giữ một chữ số thập phân sau khi đã làm tròn. Cụ thể như sau:
+ 0.25 thành 0.3
+ 0.5 thành 0.5
+ 0.75 thành 0.8
Tóm lại phần thập phân của điểm kiểm tra định kỳ chỉ có 4 trường hợp sau: 0.3; 0.5; 0.8; 0.0
(Theo tôi khi điểm kiểm tra là số nguyên thì nên ghi thêm số thập phân là .0)
 
thanhle đã viết:
Về phần thập phân của điểm kiểm tra định kỳ, theo qui chế của Bộ GDĐT chỉ giữ một chữ số thập phân sau khi đã làm tròn. Cụ thể như sau:
+ 0.25 thành 0.3
+ 0.5 thành 0.5
+ 0.75 thành 0.8
Tóm lại phần thập phân của điểm kiểm tra định kỳ chỉ có 4 trường hợp sau: 0.3; 0.5; 0.8; 0.0
(Theo tôi khi điểm kiểm tra là số nguyên thì nên ghi thêm số thập phân là .0)
Điểm lấy đến một chữ số thập phân sau khi đã làm tròn số có nghĩa là sau khi làm tròn số, điểm có tối đa 1 số thập phân. Ví dụ:
+ 5.25 thành 5.3
+ 5.21 thành 5.2
+ 5.74 thành 5.7
+ 5,03 thành 5,0
Do đó phần thập phân có 10 trường hợp từ 0,0 đến 0,9
 
thanhle đã viết:
Về phần thập phân của điểm kiểm tra định kỳ, theo qui chế của Bộ GDĐT chỉ giữ một chữ số thập phân sau khi đã làm tròn. Cụ thể như sau:
+ 0.25 thành 0.3
+ 0.5 thành 0.5
+ 0.75 thành 0.8
Tóm lại phần thập phân của điểm kiểm tra định kỳ chỉ có 4 trường hợp sau: 0.3; 0.5; 0.8; 0.0
(Theo tôi khi điểm kiểm tra là số nguyên thì nên ghi thêm số thập phân là .0)
Chào bạn
Nếu phần thập phân chỉ có 4 trường hợp như bạn nêu, vậy mình chọn giải pháp như sau (dùng các phím ở phần NumPad)
điểm ------- phím nhập
7.0 -------- 7
5.0 -------- 5
10 --------- +
9.3 -------- 9/
7.5 -------- 7*
6.8 -------- 6-
Tức là : phần thập phân là 0 thì nhập bình thường, "/" thay cho 0.3, "*" thay cho 0.5 và "-" thay cho 0.8
Các bạn góp ý thêm.
* Mình thấy file CONGDIEMMON.xls của Voda trình bày rất "bắt mắt" và có cả thống kê khá hoàn chỉnh, nên mượn file của Voda nhé.
* Mình đã Up lại file CONGDIEMMON_V02 ở bài #2/trang1

TDN
 
Lần chỉnh sửa cuối:
nmhungcncm đã viết:
Các bạn ơi đã có phần mềm của Thầy Trần Hải Long (Bến tre) cũng hay lắm.
(không hieu sao, tôi gửi không đựơc, bạn nào cần cho địa chỉ thư tôi gửi vậy.)
Cám ơn sự chia sẻ của bạn
Nếu có thể bạn gởi cho mình dangduyphuoc@Gmail.com mình sẽ up hộ (Nhưng Thầy Trần Hải Long có cho phép không vậy ? hi hi)

TDN
 
cho mình hỏi khi mình vào bảng tính thì nó phủ khối(ctrl+A) thì chon UF của tedaynui thì nó bị lỗi
PHP:
Public ii As Integer, i As Integer, kk As Integer, k As Integer, c As Integer, r As Integer
Private Sub MultiInput_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim diem, diemtam
diemtam = MultiInput.Value
If Len(diemtam) > 1 Then
MultiInput.Value = ""
Exit Sub
End If
' / : cong them 0.3 diem
If diemtam = "/" Then
If k = kk Then
k = kk + c
i = i - 1
End If
k = k - 1
Cells(i, k).Value = Cells(i, k).Value + 0.3
diemruoi = "*"
GoTo End_:
End If
' * : cong them 0.5 diem
If diemtam = "*" Then
If k = kk Then
k = kk + c
i = i - 1
End If
k = k - 1
Cells(i, k).Value = Cells(i, k).Value + 0.5
diemruoi = "*"
GoTo End_:
End If
' - : cong them 0.8 diem
If diemtam = "-" Then
If k = kk Then
k = kk + c
i = i - 1
End If
k = k - 1
Cells(i, k).Value = Cells(i, k).Value + 0.8
diemruoi = "*"
GoTo End_:
End If
If diemtam = "+" Then
diem = 10
ElseIf diemtam = "." Then
GoTo End_:
Else
diem = diemtam
End If
Cells(i, k).Value = diem
End_:
MultiInput.Value = ""
k = k + 1
If k = kk + c Then
k = kk
i = i + 1
If i = ii + r Then Unload Me
End If
End Sub
Private Sub UserForm_Initialize()
i = ActiveCell.Row
ii = i
k = ActiveCell.Column
kk = k
c = Application.Selection.Columns.Count
r = Application.Selection.Rows.Count
End Sub

ai có cách nào khắc phục lại không lỗi chèn quá bộ nhớ,các bạn cho mình biết nhé
 
Lần chỉnh sửa cuối:
có ai biết cách chỉ giùm mình xem nhé cần lượt bỏ bớt phần nào nhỉ
 
ongtrungducmx25 đã viết:
có ai biết cách chỉ giùm mình xem nhé cần lượt bỏ bớt phần nào nhỉ
Anh thầy chép code vào Sheet hay Module ? báo lỗi thì lỗi đó là gì ? lỗi ở dòng nào ? ... thầy nói rõ hơn hoặc up file lên mọi xem hộ thầy nhé.

Thân!
 
-Lỗi này do: Khi phủ khối toàn bảng tính (Ctrl+A), giá trị của biến r = 65.536, mà biến này được khai báo kiểu integer ( giá trị từ -32.768 đến 32.767). Nên bị báo lỗi tràn bộ nhớ.
-Cách khắc phục: Bạn bỏ phủ khối toàn bảng tính, chỉ chọn khối cần thiết để nhập dữ liệu hoặcKhai báo lại biến r: Dim r as Long
 
voda đã viết:
-Lỗi này do: Khi phủ khối toàn bảng tính (Ctrl+A), giá trị của biến r = 65.536, mà biến này được khai báo kiểu integer ( giá trị từ -32.768 đến 32.767). Nên bị báo lỗi tràn bộ nhớ.
-Cách khắc phục: Bạn bỏ phủ khối toàn bảng tính, chỉ chọn khối cần thiết để nhập dữ liệu hoặcKhai báo lại biến r: Dim r as Long

voda ơi khai báo như thế nào thì em không biết mong bạn sửa lại cho mình nhé mình gởi lại file lên đây nhé "r: Dim r as Long"+-+-+-+

 

File đính kèm

Bạn chỉnh lại dòng đầu tiên trong đoạn code như sau sẽ hết bị báo lỗi:
Public ii As Integer, i As Integer, kk As Integer, k As Integer, c As Integer, r As Long
Tuy nhiên, không hiểu bạn phủ khối toàn bảng tính để làm gì? Vì để nhập điểm chỉ cần chọn vùng cần nhập là được.
 
sau file của mình lại bị lỗi gì zậy "voda" bạn xem file của mình nhé!

lúc chưa sửa thì mở được khi mình vào sửa lại thì có lỗi
PHP:
Public ii As Integer, i As Integer, kk As Integer, k As Integer, c As Integer, r As Long

sau khi sửa xong thì chọn vùng nhập điểm thì bị lỗi không chọn (vùng hệ số 1+điểm thi 1 và hệ số 2 +điểm thi 2) bị lỗi nhé
Và không nhập được điểm nhé
 

File đính kèm

Lần chỉnh sửa cuối:
Xin chào tất cả các bạn. Mình chính là tác giả của Chương trình cộng điểm bộ môn DBM1.3-THCS và DBM1.3-THPT, mình đã xem qua tất cả ý kiến của các bạn. Theo ý kiến chủ quan của mình, mình thấy các bạn đang rất quan tâm đến vấn đề nhập điểm đấy. Nhưng theo mình thì nhập trên sheet là dễ dàng nhất tuy mỗi chúng ta đều có nhiều cách nhập khác nhau. Điểm số của học sinh có đến đâu thì chúng ta cứ lên máy nhập đến đó chứ có phải là để đến cuối học kì lúc thống kê mới nhập một lượt đâu mà cần phải làm như thế. Ở mỗi nơi đểu có cách trình bày Sổ điểm bộ môn khác nhau nhưng không thể khác nhau về cách cho điểm, số cột điểm qui định và cách tính điểm trung bình. Hãy tìm cho bản thân mình một chương trình cộng điểm ưng ý nhất đi nào hoặc là có thể sử dụng chương trình của longtran159 này. Hiện nay mình mới vừa hoàn thành xong phiên bản mới cho cả THCS và THPT đây này nhưng chưa có tung lên mạng cho bà con được vì mình còn đang làm tập tin Help và đóng gói chương trình này lại như một phần mềm chuyên nghiệp. Các bạn chờ vài hôm nữa và sử dụng thử xem sao nhé.
 
Nguyên văn bởi ongtrungducmx25
lúc chưa sửa thì mở được khi mình vào sửa lại thì có lỗi
Không phải đâu bạn ạ! Chỉnh như thế không ảnh hưởng gì đến chương trình cả. Chỉ là mở rộng phạm vi của biến thôi.
Mình thấy lỗi trong file bangdiem05 là do biến t chưa được khai báo. Bạn vào code của form Nhapdiem, thêm vào dòng đầu như sau:
Public ii As Integer, i As Integer, kk As Integer, k As Integer, c As Integer, r As Long, t As integer
 
em muốn hiện lại menusheet lại thì sau voda để thêm vào một vào nút trên menu, khi mình mở bảng tính thì ở trang đầu chữ chạy nhưng khi vào các trang bảng điểm xong rồi trở lại trang đầu thì chữ không chạy tiếp nữa là sau zậy
 

File đính kèm

-Muốn hiện lại MenuSheet, bạn vào Format/Sheet/Unhide - OK.
-Muốn chữ vẫn chạy, bạn vào cửa sổ code của sheet Trangdau, xoá đoạn code sau:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End
End Sub
 
sau mà vào UF bảng điểm chọn sheet bảng điểm rồi sau đó trở lại trang đầu thì không thấy chữ chạy nữa zay
 
PHP:
Public ii As Integer, i As Integer, kk As Integer, k As Integer, c As Integer, r As Integer
Private Sub MultiInput_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim diem, diemtam
diemtam = MultiInput.Value
If Len(diemtam) > 1 Then
MultiInput.Value = ""
If diemtam = "+" Then
diem = 10
ElseIf diemtam = "." Then
GoTo End_:
Else
diem = diemtam
End If
Cells(i, k).Value = diem
End_:
MultiInput.Value = ""
k = k + 1
If k = kk + c Then
k = kk
i = i + 1
If i = ii + r Then Unload Me
End If
End Sub
Private Sub UserForm_Initialize()
i = ActiveCell.Row
ii = i
k = ActiveCell.Column
kk = k
c = Application.Selection.Columns.Count
r = Application.Selection.Rows.Count
End Sub
xin hỏi các bạn có cách nào sử điểm khi mình nhập vào như sao:
vd: em đang nhập điểm vào từ C9:C15 thì nhập sau tại ô này thì làm sau trở lại ô nhập sai là c15, trong khi đó nó cư chạy tiếp tục c16 đến hết,có cách nào sửa ngay trong khi nhập không nhỉ, khi sửa xong nhì lại nhập tiếp ở c16 cho đến hết. thank
 
làm sao để tạo ra một nút để sửa lỗi nhập điểm sai các pác giúp giùm em với, khi em nhập sau một số thì các số còn lại vẫn nhập bình thường ,nhưng phải gi nhớ vị trí nhập sai xót đó để sửa lại thì hơi mệt.pác vô da đâu rồi giúp giùm em với
 
Lần chỉnh sửa cuối:
Nói như bác OkeBap có quá không
Chứ các thầy cô trường tôi cũng rất cảm ơn đoạn code của bác Tedaynui gởi cho tôi vì khi nhập bằng form chỉ cần 1 tay và tay kia rà điểm vừa nhanh vừa chính xác
Còn trường hợp HS trống điểm nếu không muốn đóng form hãy nhập là 0 và định dạng trong bảng điểm số không màu đỏ sau đó sửa lại sau
 
haitcv đã viết:
Còn trường hợp HS trống điểm nếu không muốn đóng form hãy nhập là 0 và định dạng trong bảng điểm số không màu đỏ sau đó sửa lại sau

không cần phải cho điểm 0 vào cell sao đó chỉnh sửa lại cho phiền phức như zay đâu bạn haitcv nhé tại vị trí bạn có học sinh chưa có điểm thì bạn chỉ cần nhấn 2 nhút liên tục Vd: 4 và 5 liên tục thì nó sẽ bỏ qua vì nó không hiểu nhập số nào vào cell đó cho nên nó để lại khoảng trắng thì sao đó bạn bổ sung là ok rồi nhé!
 
pác voda cho em chỉnh sửa một chúc là bảng điểm của em có tới khoảng 40 em , có cách nào khi nhập vào bảng điểm thì bảng điểm của em tự động đi xuống để tiện qua sát điểm khi nhập, còn lúc trước thì không có. thank
nhập tới đâu thì bảng điểm nhảy đến đó
 

File đính kèm

Lần chỉnh sửa cuối:
làm thế nào sheet tự chạy xuống mỗi lần nhập điểm trên UF nhỉ #51
 
Bác vào cửa sổ code của sheet Diemcu, thêm dòng lệnh này vào:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Er As Integer, Max As Integer
      If Not Intersect(Range("C2:C100"), Target) Is Nothing Then
            Er = Range("C1000").End(xlUp).Row
            For i = 9 To Er
                Max = Application.WorksheetFunction.Max(Range("B8:B" & i - 1))
                   If Cells(i, 2).MergeCells = False Then
                        Cells(i, 2).Value = Max + 1
                   End If
           Next i
     End If
     [COLOR="Red"]If Not Intersect(Range("C35"), Target) Is Nothing Then
          ActiveWindow.SmallScroll down:=20
     End If[/COLOR]
End Sub
 
pác voda ơi em nạp code vào rồi nhưng chỉ quan sát được từ dòng 1 đến dòng 27 thôi còn các dòng còn lại thì không tự xem được khi nhập điểm
em gởi lêm trong đó có bảng điểm học sinh.xls file.xla
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu bạn muốn nhập đến đâu bảng điểm nhảy đến đó thì chỉnh lại code một tí:
Mã:
     If Not Intersect(Range("C9:C53"), Target) Is Nothing Then
          ActiveWindow.SmallScroll down:=1
     End If
 
đúng ý em rồi nhưng nó vẫn không như ý muốn nhập điểm đến dòng 27 không thấy từ dòng 28 đến hết
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Er As Integer, Max As Integer
      If Not Intersect(Range("C2:C100"), Target) Is Nothing Then
            Er = Range("C1000").End(xlUp).Row
            For i = 9 To Er
                Max = Application.WorksheetFunction.Max(Range("B8:B" & i - 1))
                   If Cells(i, 2).MergeCells = False Then
                        Cells(i, 2).Value = Max + 1
                   End If
           Next i
     End If
      If Not Intersect(Range("C9:C53"), Target) Is Nothing Then
          ActiveWindow.SmallScroll down:=1
     End If
End Sub
 
đúng ý em rồi nhưng nó vẫn không như ý muốn nhập điểm đến dòng 27 không thấy từ dòng 28 đến hết
-Bạn nói rõ thêm cho mình biết dòng 27 hay số thứ tự 27 trong bảng tính?
-Dòng 28 đến hết. Hết là đến dòng thứ mấy?
 
có nghĩa là số thứ tự học sinh có thể nhiều hoặc ích có lớp 25 học sinh,30hs, 45hs .....tùy theo từng số lượng mà có thể nhập điểm vào thì quan sát được những em đó để có thể nhanh chống sữa sai, chứ em nhập tới dòng 27 là không thấy những em ở dong 28 cho đến hết,cụ thể là vừa nhập vừa xem được thứ tự học sinh ( chứ màng hình chỉ hiện trong dãy số thứ tự 1 đến 27 dòng bình thường 1 sheet là thế ) để có tính linh động và quan sát đúng đối tượng, hơn nữa mỗi lần sửa điểm nhập sai của học sinh ở dòng bị khuất khoảng số thứ tự 22,23....cho đến học sinh cuối cùng là không thấy rồi nhé!
 
Mình chưa hiểu hết ý của bạn. Nếu bạn đã bổ sung đoạn code trên vào chương trình thì khi nhập tên một học sinh ở cột C ,bảng điểm sẽ tự động cuộn xuống 1 dòng. Vậy khi bạn nhập đến số 27, bảng điểm đã cuộn được 27 dòng đủ để bạn nhìn thấy học sinh cuối cùng. Sao bạn lại không nhìn thấy? Bạn có thể nói rõ hơn được không?
 
em muốn xem tất cả điểm khi đang nhập điểm nhập tới đâu thì thanh cuộn đi đến đó có thể đi đến hết bản điểm của em có tới 45 dòng thì quan sát hết 45 dòng đó!
 
-Nếu muốn quan sát tất cả học sinh khi đang nhập điểm thì đoạn code trên cũng như thanh cuộn sẽ không có tác dụng nữa. ( Vì ta chỉ dùng scroll lúc có những dòng phía dưới hoặc phía trên bị che khuất )
-Bạn thử vào View/Zoom chỉnh xuống 75 hoặc 50 phần trăm xem thử. Nếu không nhìn được hết thì chịu khó dùng scroll vậy. Vì màn hình có giới hạn không hiển thị tất cả được.
 
đúng làm mình hình có giới hạn, có đó thì trong file của em nhập điểm cũng có chức năng zoom sheet va zoom uF luốn pác xem nhé!
 
xin cho hỏi có cách nào nhập điểm nhanh không cần phải nhấn phím Tab hoặc enter không khi em nhập điểm từ {0;1;.....;10} có cách nàp nhập điểm liên tục không em có file đính kèm nhờ báo giải đáp thất mất của em ?@$@!^%
Ý của bạn là muốn nhập liền điểm mà không cần dùng phím Enter hay mũi tên đúng không. Tôi có làm một tiện ích nhập điểm giống ý tưởng của bạn. Ví dụ nếu như nhập chuỗi 7065012010 thì sẽ tự động tách thành các điểm 7; 6,5; 1; 2; 10 và đưa vào các ô liên tiếp. Bạn thử tham khảo tiện ích quản lý điểm tại https://sites.google.com/site/xuanhoa7604/ xem có đúng ý như thế không. Đọc hướng dẫn nhập trong file hướng dẫn.
 

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

Back
Top Bottom