Xin các anh chị trợ giúp code liên quan đến form nhập liệu! (1 người xem)

Liên hệ QC

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

ruamap9

Thành viên mới
Tham gia
17/10/12
Bài viết
13
Được thích
0
Em mới tham gia diễn đàn này và đang bắt đầu là quen VBA từ bước chập chững ban đầu mong các anh chị trợ giúp về đoạn cốt gán cho nút nhập liệu sau: ( Đoạn code này có trên diễn đàn nhưng đã rút gọn lại với mục đích nghiên cứu học tập)
Form nhập liệu gồm 3 ô ( 3 texbox1,2,3) và nút lệnh nhập ok đã gán như sau
Private Sub Ok_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
If TextBox1 = "" Or TextBox2 = "" Then
MsgBox "Nhap thieu du lieu. Vui long nhap tiep!", , "THONG BAO !"
Exit Sub
End If
'find first empty row in database
iRow = ws.Cells(Rows.Count, 3) _
.End(xlUp).Offset(1, 0).Row
'copy the data to the database
ws.Cells(iRow, 2).Value = Me.TextBox1.Value
ws.Cells(iRow, 3).Value = Me.TextBox2.Value
ws.Cells(iRow, 4).Value = Me.TextBox3.Value


'clear the data
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""

Me.TextBox1.SetFocus
End Sub

Các anh chi cho em hỏi với đoạn code trên tại dòng Set ws = Worksheets("Data") thì có thể sửa lại câu lệnh thế nào để khi copy sang các sheet có tên khác nhau ( rất nhiều sheet) vẫn có thể tạo được form nhập dự liệu có tính chất giống như form đã thiết kế ở sheet Data.( Với điều kiện là không sửa tên sheet mới thay cho sheet Data trong đoạn code trên)
Xin cảm ơn các anh chị!
 
Em mới tham gia diễn đàn này và đang bắt đầu là quen VBA từ bước chập chững ban đầu mong các anh chị trợ giúp về đoạn cốt gán cho nút nhập liệu sau: ( Đoạn code này có trên diễn đàn nhưng đã rút gọn lại với mục đích nghiên cứu học tập)
Form nhập liệu gồm 3 ô ( 3 texbox1,2,3) và nút lệnh nhập ok đã gán như sau
Private Sub Ok_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
If TextBox1 = "" Or TextBox2 = "" Then
MsgBox "Nhap thieu du lieu. Vui long nhap tiep!", , "THONG BAO !"
Exit Sub
End If
'find first empty row in database
iRow = ws.Cells(Rows.Count, 3) _
.End(xlUp).Offset(1, 0).Row
'copy the data to the database
ws.Cells(iRow, 2).Value = Me.TextBox1.Value
ws.Cells(iRow, 3).Value = Me.TextBox2.Value
ws.Cells(iRow, 4).Value = Me.TextBox3.Value


'clear the data
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""

Me.TextBox1.SetFocus
End Sub

Các anh chi cho em hỏi với đoạn code trên tại dòng Set ws = Worksheets("Data") thì có thể sửa lại câu lệnh thế nào để khi copy sang các sheet có tên khác nhau ( rất nhiều sheet) vẫn có thể tạo được form nhập dự liệu có tính chất giống như form đã thiết kế ở sheet Data.( Với điều kiện là không sửa tên sheet mới thay cho sheet Data trong đoạn code trên)
Xin cảm ơn các anh chị!

Nếu bạn chỉ muốn thay đổi chỗ đỏ đỏ thì tôi hiểu là bạn muốn giữ nguyên phần code còn lại. Nếu thế thì tôi đoán tiếp là các sheet có cấu trúc như nhau (vd. Thang 1, Thang 2, ..., Thang 12) hoặc ít ra trong vùng cần nhập liệu có cấu trúc như nhau. Nếu thế thì chả lý gì lại tạo cho mỗi sheet 1 Form tương ứng.
Cái Form kia phải được gọi, được show ở một chỗ nào đó. Nếu trên mỗi sheet có một nút mà code của nó là UserForm***.Show thì cái sheet cần nhập liệu kia nó chính là ActiveSheet, ActiveWorkbook.ActiveSheet, ThisWorkbook.ActiveSheet

Vậy
Mã:
Set ws = ThisWorkbook.ActiveSheet    'ActiveWorkbook.ActiveSheet

Hoặc những chỗ có ws thay bằng ThisWorkbook.ActiveSheet, ActiveWorkbook.ActiveSheet
 
Upvote 0
Cảm ơn anh SwiTom! Em đã làm như trên và test thành công !
 
Upvote 0

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

Back
Top Bottom