Thiết kế và lập trình bảng tính giá trị tự động

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

thlpro

Thành viên hoạt động
Tham gia
17/6/08
Bài viết
178
Được thích
11
Chào các ACE,
ACE vui lòng giúp mình làm giúp mình cái file mình gửi sao đây nhé. Cảm ơn ACE nhiều nhiều.
 

File đính kèm

Chào các ACE,
ACE vui lòng giúp mình làm giúp mình cái file mình gửi sao đây nhé. Cảm ơn ACE nhiều nhiều.

Chổ này là sao, chữ mà sao có giá trị để bạn tính tổng.

tổng giá trị cả số lẫn chữ phải = 14

Để đỡ mất công xử lý mấy cái textbox và đơn giản nhập liệu sao bạn không dùng 2 cột Name và No là các cell cho khoẻ mà tự nhiên dùng textbox chi vậy.
 
Upvote 0
= 14 có nghĩa là độ dài của nó là = 14. Ví dụ: IBM3650S-7979A
Tổng độ dài của nó là phải bằng 14, nhỏ hơn và lớn hơn cũng ko được
 
Upvote 0
Chổ này là sao, chữ mà sao có giá trị để bạn tính tổng.



Để đỡ mất công xử lý mấy cái textbox và đơn giản nhập liệu sao bạn không dùng 2 cột Name và No là các cell cho khoẻ mà tự nhiên dùng textbox chi vậy.
Chắc "hắn" muốn nói rằng: Độ dài chuổi tối đa = 14 ký tự (LEN)
 
Upvote 0
= 14 có nghĩa là độ dài của nó là = 14. Ví dụ: IBM3650S-7979A
Tổng độ dài của nó là phải bằng 14, nhỏ hơn và lớn hơn cũng ko được

Code của bạn đây, chỉ sau khi bạn nhập đầy đủ số liệu và số liệu phải thoả mãn yêu cầu đặt ra thì mới click được nút Save.

PHP:
Private Sub CmdDel_Click()
    [b2.b9,b11:b13].ClearContents
    CmdSave.Enabled = False
    CmdDel.Enabled = False
End Sub

Private Sub CmdSave_Click()
    Dim Er As Single
    With Sheets("DATA")
        Er = .[b65000].End(xlUp)(2).Row
        .Range("b" & Er).Resize(, 12) = WorksheetFunction.Transpose([b2.b13])
        .Range("n" & Er) = Now
        .Range("j" & Er) = IIf([b10] = 1, "Y", "N")
        .Range("b4.b" & Er).Offset(, -1) = "=ROW()-3"
    End With
    
    CmdDel.Enabled = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [b2.b9,b11]) Is Nothing Or Target = "" Then Exit Sub
    If Target = [b11] Then
        If Len([b11]) <> 14 Then
            MsgBox "Part# = 14", vbCritical
            Target.ClearContents
            Target.Select
        ElseIf WorksheetFunction.CountA([b2.b9]) < [b2.b9].Count Then
            MsgBox "Cot No con thieu DL"
            [b2.b9].SpecialCells(4)(1).Select
        End If
    Else
        If Not IsNumeric(Target) Or Target <= 0 Then
            MsgBox "Ban tu ghi thong bao nhe"
            Target.ClearContents
            Target.Select
        End If
    End If
    If WorksheetFunction.CountA([b2.b9,b11]) = [b2.b9,b11].Count Then
        [b12] = "=AVERAGE(r2c2:r9c2)"
        [b13] = "=STDEV(r2c2:r9c2)"
        CmdSave.Enabled = True
    End If
End Sub
 

File đính kèm

Upvote 0
[b12] = "=AVERAGE(r2c2:r9c2)"
[b13] = "=STDEV(r2c2:r9c2)"

Trước hết mình cảm ơn bài viết của bạn. Cho mình hỏi chỗ này tí: r2c2:r9c2 là cái gì vậy. Mình ko hiểu chỗ này. Với làm sao định dạng lai nút buttom được nhỉ.
Còn thêm 1 yêu cầu nhỏ nữa. Đó là làm sao khi nhập vào các ô thì ko được bỏ trống.
Cảm ơn nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom