Gán lệnh cho UserForm (3 người xem)

Liên hệ QC

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

thaibinh_excel

Thành viên hoạt động
Tham gia
18/10/07
Bài viết
127
Được thích
29
Nghề nghiệp
Bán Hàng
Chào các bác,

Mình có 1 userform này và 1 code chạy dữ liệu. Mình muốn nhờ các bác giúp gán các lệnh vào User Form để thực hiện việc nhập liệu.

Nhờ các bác xem file và hỗ trợ giúp,
Best Regards,
 

File đính kèm

Phần sữ lý dữ liệu thì bạn viết tiếp code cho các giá trị nhập vào thôi! Mình đã thêm vào trong Macro moForm phím tắt Ctrl + Shift + J rồi đó. File Workbook B muốn mở được Form của Workbook này thì bạn xem code bên đó có lệnh này không: Windows("Ban Nhap Moi.xls").Application.SendKeys "^+J" Nếu có rồi thì thôi, nếu chưa có thì thêm vào là được. Còn các điều kiện bạn nêu ra thì bạn sử dụng lệnh If ... Then trong VBA để so sánh kết quả nhập vào xem có đúng yêu cầu không? Nếu không có hoặc không thỏa yêu cầu thì bạn SetFocus lại nó thôi! Chúc bạn thành công! Bí đoạn nào thì mình chỉ tiếp! Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Phần sữ lý dữ liệu thì bạn viết tiếp code cho các giá trị nhập vào thôi!
Mình đã thêm vào trong Macro moForm phím tắt Ctrl + Shift + J rồi đó. File Workbook B muốn mở được Form của Workbook này thì bạn xem code bên đó có lệnh này không: Windows("Ban Nhap Moi.xls").Application.SendKeys "^+J"
Nếu có rồi thì thôi, nếu chưa có thì thêm vào là được.
Còn các điều kiện bạn nêu ra thì bạn sử dụng lệnh If ... Then trong VBA để so sánh kết quả nhập vào xem có đúng yêu cầu không? Nếu không có hoặc không thỏa yêu cầu thì bạn SetFocus lại nó thôi!
Chúc bạn thành công!
Bí đoạn nào thì mình chỉ tiếp!
Thân.

Wow, trong trường hợp này mình có hơn 30 TextBox, vậy mình phải set 30 lệnh
Cells ( NetRow, 1 ) = TextBox1.Text..... luôn à?
Rồi trong trường hợp Clear hết để nhập cái mới ở hàng tiếp theo thì mình phải Set thêm 30 cái TextBox1.Text = "" hả Po_pi ?

trường hợp code của mình là lấy dữ liệu từ Sheet Nhập chuyển sang Sheet Data, nhưng bây giờ là lấy dữ liệu từ Form chuyển sang, không biết gán thế nào cho đúng, bác có thể demo giup code chạy cho khoảng 5 textbox đầu được không nhỉ?

Cám ơn bác,
TB
Có cách nào Giản lược hơn không nhỉ?
 
Upvote 0
Do code nhập liệu của bạn có nhiều điều kiện khác nhau nên nhóm nào không hoặc có điều kiện giống nhau thì có thể dòng vòng lặp để bắt chúng chạy nhanh hơn. Còn Khác nhau thì chịu! Code chuyển dữ liệu từ Sheet Nhập sang Sheet Data có thể rút gọn bằng vòng lặp For...next , còn Clear dữ liệu thì chỉ có 1 dòng thôi! Ví dụ: Range("D3:D24").ClearContents Ví dụ cho việc chuyển và xóa dữ liệu:
Mã:
 Sub chuyen() k = Application.WorksheetFunction.CountA(Sheet2.Range("A:A")) + 1 For i = 2 To 20    Sheet2.Cells(k, i - 1) = Sheet1.Range("D" & i).Value Next Sheet1.Range("D2:D20").ClearContents End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Do code nhập liệu của bạn có nhiều điều kiện khác nhau nên nhóm nào không hoặc có điều kiện giống nhau thì có thể dòng vòng lặp để bắt chúng chạy nhanh hơn. Còn Khác nhau thì chịu!
Code chuyển dữ liệu từ Sheet Nhập sang Sheet Data có thể rút gọn bằng vòng lặp For...next , ví dụ:
Mã:
Sub chuyen()
k= Application.WorkbookFunction.Max(Sheet2.range("A:A").value) +1
For i = 2 to 20
 Sheet1.Range("D"& i).value = Sheet2.Cells(k, i).value
Next
End Sub
Còn Clear dữ liệu thì chỉ có 1 dòng thôi! Ví dụ: Range("D3:D24").ClearContents

Cái này mình nói theo mình hiểu, có j sai thì Pi_Pokachu bỏ qua nhé,
Ý của mình là sẽ bỏ đi Sheet" Cus.Form" và nhập hoàn toàn bằng user form. Nếu dùng clear contents như trên có phải nó sẽ xóa đi nội dung của Cus.Database không ? Nhưng ý của mình là User Form sau khi nhập xong 1 khách hàng sẽ pass qua Database và xóa hết nội dung vừa nhập. Focus lại ở Textbox1 và tiếp tục nhập khách hàng tiếp theo.

Toàn bộ User Form mình thiết kế là TextBox hết để nó chuyển qua Database dưới dạng đánh thế nào hiện thế đó.

Những cái bạn hướng dẫn ở trên hình như là bám theo 02 sheet của mình. Nhưng nếu mình dùng User Form thì Sheet CuS.Form không cần thiết nữa, vậy câu lệnh này sẽ bị báo lỗi phải không ? ( vì toàn bộ file chỉ còn 1 sheet và 1 user form
Sheet1.Range("D"& i).value = Sheet2.Cells(k, i).value.

Sở dĩ mình đưa file có 02 sheet lên là mình muốn nói là nhập dữ liệu từ 1 sheet sang 1 sheet khác mình làm được rồi, giờ muốn thử dùng User Form để nhập đó Po-Pikachu ơi.

Có gì hiểu không đúng cho mình sorry nhé. :-). Tay ngang nên còn lờ mờ lắm. Hichic
Best Regards,
 
Upvote 0
Cách cùi mía nhưng xài được. Bạn xem đúng ý chưa! Cài này thì không cần sheet Cus.Form luôn. Code hơi dài, nếu bạn muốn rút gọn lại thì bạn có thể xem ở đây. http://www.giaiphapexcel.com/forum/showthread.php?t=8466 Mình thì chưa hiểu lắm về việc rút gọn này nên để các cao thủ khác giúp bạn đi tiếp nha! Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chào các bác,

Mình có 1 userform này và 1 code chạy dữ liệu. Mình muốn nhờ các bác giúp gán các lệnh vào User Form để thực hiện việc nhập liệu.

Nhờ các bác xem file và hỗ trợ giúp,
Best Regards,


  1. Hãy thiết kế lại Form sao cho 1 Textbox tương đương với 1 Cell của Data, như vậy mới chạy vòng lặp dễ dàng được
  2. Ngày tháng năm không nên cho thành 3 textbox
  3. Thiết kế Form sao cho dễ nhìn hơn
  4. Lập trình thì cần sự kiên trì, vì vậy nên đặt từng tên cho Textbox, sau đó làm việc với từng Textbox một.
Bạn thử File dưới nhé:

Thân!
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom