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

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?
 
Web KT

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

Back
Top Bottom