em kiểm tra code trong form nhưng em đã khai báo :"MaxRowData1" trong PublicConts rùi mà. vì em chỉ biết bấy nhiêu thui.
Không chuẩn chỗ này:
Private Sub Workbook_Activate()
MaxRowData = Range("MaxRowData").Value
MaxRowData1 = Range("MaxRowData1").Value
MaxRowData2 = Range("MaxRowData2").Value
End Sub
Sub WSActivate()
MaxRowData = Range("MaxRowData").Value
MaxRowData1 = Range("MaxRowData1").Value
MaxRowData2 = Range("MaxRowData2").Value
End sub
Private Sub Workbook_Activate()
Application.Run "WSActivate"
End Sub
Private Sub cmdsave_Click()
If Me.txtMaNV <> "" Then
MaxRowData1 = Range("MaxRowData1").Value ==> không khai báo chính xác chỗ này, không thể khai báo giá trị một range ở sheet khác. Thủ tục này phải làm ở module.
Sheets("Setup").Select
Cells(MaxRowData1, 1) = Me.txtMaNV.Value
Cells(MaxRowData1, 2) = Me.txtTenNV.Value
Cells(MaxRowData1, 3) = Me.txtPhongBan.Value
Else
a = MsgBox("Du lieu nhap chua day du, vui long xem lai cach nhap lieu", vbOKOnly, "Thong bao")
Me.txtMaNV.SetFocus
Exit Sub
End If
End Sub
còn nút "Danh mục nhân viên" và "danh mục nơi công tác", em muốn làm như mấy nút bên trên thì làm như thế nào?, làm sao đổi màu nền, không cho nhấp phải chuột chỉnh sửa. em thử làm rất nhiều nhưng không được mấy bác ơi.
To Kiệt: Nếu bạn viết như thế này thì không cần đoạn code copy từ dòng dưới lên nữa --> đỡ phức tạp hơn (có thể bỏ hết những dòng đỏ đi).Bạn xem file version 4 đính kèm nha. Bạn vào VBA xem thủ tục cho hai nút delete mình viết. Thủ tục detete khó hơn vì phải xử lý tiếp nếu mã tìm được nằm ở vùng nào thì phải copy vùng dưới dòng đã delete lên trên. Không dùng detele dòng trong trường hợp này vì sheet system bạn có tới hai table chứa hai cơ sở dữ liệu khác nhau.
Phù.......
.....
For i = MaxRowData1 - 1 To 2 Step -1 '2 To MaxRowData1 - 1'
If LCase(Cells(i, 5)) = LCase(Me.txtMaNV) Then
Findter = 1
'Cells(i, 5).ClearContents'
'Cells(i, 6).ClearContents'
'Cells(i, 7).ClearContents'
Range(Cells(i, 5), Cells(i, 7)).Delete Shift:=xlUp
'====================================='
'Copy nhung dong du lieu tu duoi dem len tren'
'If i < MaxRowData1 - 1 Then'
' Range("E" & i + 1 & ":G" & MaxRowData1 - 1).Select'
' Selection.Cut'
' Range("E" & i).Select'
' ActiveSheet.Paste'
'End If'
End If