Nhập textbox theo thứ tự từ trên xuống!

Liên hệ QC

son0611excel

Thành viên chính thức
Tham gia
3/1/20
Bài viết
69
Được thích
11
Giới tính
Nam
Nghề nghiệp
Kỹ Thuật
Em chào mọi người ạ, em đang có vấn đề cần mọi người giúp đỡ, em có 1 cái Userform, trên đó có 3 bảng Textbox1, 2, 3 và 1 Commandbutton và 1 bảng Table A1:A3, Khi nhấp commandbutton thì nó sẽ nhập Textbox nào có dữ liệu xuống A1 tới A3, luôn bắt đầu ghi từ ô A1, xét từ Textbox1 tới textbox3.
 
Lần chỉnh sửa cuối:
Em chào mọi người ạ, em đang có vấn đề cần mọi người giúp đỡ, em có 3 bảng Textbox1, 2, 3 và 1 Commandbutton và 1 bảng Table A1:A3, mọi người có code nào có thể khi em nhập vào textbox 2 một số thì nó sẽ ghi vào A1, khi em nhập vào textbox 1 và text box3 một số thì nó sẽ ghi vào A1, A2, í là nó sẽ ghi theo thứ tự từ trên xuống dưới đấy ạ, chứ không phải là textbox1 ghi vào A1, textbox2 ghi vào A2, textbox3 ghi vào A3. Em cảm ơn ạ!
Chắc bạn tạo file, tạo form xong nhờ code thì tiện hơn
 
Upvote 0
Sao í là vẫn ở trong đầu của mình á.

Phải nói là: í là
- ẻm có 1 cái userform, trên đó có 3 textbox (không phải 3 bảng), 1 nút command button.
- khi iem nhấn nút command để lưu giữ liệu có trong 3 textbox xuống vùng A1:A3 thì:
-> Textbox nào có dữ liệu thì ghi xuống A1 tới A3, luôn bắt đầu ghi từ ô A1, xét từ Textbox1 tới textbox3.

Đấy, tiếng Việt chỉ đơn giản thế thôi. Tại sao mình í là mà cứ xoắn xít vào nhau vậy.
 
Upvote 0
Sao í là vẫn ở trong đầu của mình á.

Phải nói là: í là
- ẻm có 1 cái userform, trên đó có 3 textbox (không phải 3 bảng), 1 nút command button.
- khi iem nhấn nút command để lưu giữ liệu có trong 3 textbox xuống vùng A1:A3 thì:
-> Textbox nào có dữ liệu thì ghi xuống A1 tới A3, luôn bắt đầu ghi từ ô A1, xét từ Textbox1 tới textbox3.

Đấy, tiếng Việt chỉ đơn giản thế thôi. Tại sao mình í là mà cứ xoắn xít vào nhau vậy.
Dạ đúng rồi ạ, mong anh giúp đỡ
Bài đã được tự động gộp:

Chắc bạn tạo file, tạo form xong nhờ code thì tiện hơn
Em có sửa lại nội dung cho dễ hiểu hơn rồi ạ!
 
Upvote 0
Mới nói xong đoạn nhập, còn đoạn xóa?
 
Upvote 0
Mới nói xong đoạn nhập, còn đoạn xóa?

Em muốn là, mình nhập số xong rồi, mình ghi số mới rồi bấm nó cũng sẽ xóa cái cũ và cũng bắt đầu từ A1 luôn ạ!

Khổ thật! Mình có nói không hiểu ý bạn đâu, mà là nhờ giúp thì tạo sẵn đi rồi người khác giúp. Bạn có ý tưởng hết rồi, chỉ nhờ code thôi mà?
Em gửi file ạ!
 

File đính kèm

  • 11111.xlsm
    25.5 KB · Đọc: 8
Upvote 0
Sao í là vẫn ở trong đầu của mình á.

Phải nói là: í là
- ẻm có 1 cái userform, trên đó có 3 textbox (không phải 3 bảng), 1 nút command button.
- khi iem nhấn nút command để lưu giữ liệu có trong 3 textbox xuống vùng A1:A3 thì:
-> Textbox nào có dữ liệu thì ghi xuống A1 tới A3, luôn bắt đầu ghi từ ô A1, xét từ Textbox1 tới textbox3.

Đấy, tiếng Việt chỉ đơn giản thế thôi. Tại sao mình í là mà cứ xoắn xít vào nhau vậy.
Tiếng Việt đơn giản, nhưng lô gic chưa giải thích hết.

Tại sao phải "bắt đầu ghi từ ô A1". Tại sao phải "xét từ Textbox1 đến textbox3"
Ghi A2 trước A1 thì có có khả năng sai ra sao?

Thớt nói chuyện lủng củng, cần về suy nghĩ lại các lô gic yêu cầu của mình. Trước hết, phải suy nghgix tại sao mình muốn như vậy. Và sau đó phải đoán trước nếu như vậy rồi thì mình được kết quả thế nào. Bậc cao hơn nữa phải tính các trường hợp bất trắc.

Chú thích: thứ tự dữ liệu chỉ quan trọng khi có nhu cầu xét sự hợp lệ với nhau.
Tỷ dụ A2 không thể lớn hơn A1, và A3 giữa A1-A2.
 
Upvote 0
Tiếng Việt đơn giản, nhưng lô gic chưa giải thích hết.

Tại sao phải "bắt đầu ghi từ ô A1". Tại sao phải "xét từ Textbox1 đến textbox3"
Ghi A2 trước A1 thì có có khả năng sai ra sao?

Thớt nói chuyện lủng củng, cần về suy nghĩ lại các lô gic yêu cầu của mình. Trước hết, phải suy nghgix tại sao mình muốn như vậy. Và sau đó phải đoán trước nếu như vậy rồi thì mình được kết quả thế nào. Bậc cao hơn nữa phải tính các trường hợp bất trắc.

Chú thích: thứ tự dữ liệu chỉ quan trọng khi có nhu cầu xét sự hợp lệ với nhau.
Tỷ dụ A2 không thể lớn hơn A1, và A3 giữa A1-A2.
Dạ, em sẽ rút kinh nghiệm ạ, hiện tại cái em cần là ô textbox nào có giá trị khi bấm commandbutton thì nó sẽ nhập vào A1:A3 thôi ạ, theo thứ tự từ A1 xuống ạ, Ví dụ như TB1 và TB3 có giá trị, thì nó sẽ nhập vào A1 và A2 và bỏ trống A3 hoặc TB2 và TB3 có giá trị, thì nó sẽ cũng sẽ nhập vào A1 và A2 bỏ A3 ạ, cứ nhấp commandbutton thì nó sẽ chép đè lên xóa hết dữ liệu cũ ạ!
 
Upvote 0
Dạ, em sẽ rút kinh nghiệm ạ, hiện tại cái em cần là ô textbox nào có giá trị khi bấm commandbutton thì nó sẽ nhập vào A1:A3 thôi ạ, theo thứ tự từ A1 xuống ạ, Ví dụ như TB1 và TB3 có giá trị, thì nó sẽ nhập vào A1 và A2 và bỏ trống A3 hoặc TB2 và TB3 có giá trị, thì nó sẽ cũng sẽ nhập vào A1 và A2 bỏ A3 ạ, cứ nhấp commandbutton thì nó sẽ chép đè lên xóa hết dữ liệu cũ ạ!
Dùng IF đi bạn nhé,
Cứ IF thử xem có được không? IF kết hợp với biến chỉ số làm biến đánh dấu k chẳng hạn

IF textbox1.Value<>"" then
k=k+1
a(k,1)=....
End If

Rồi tiếp, ...vv
Còn nếu thuận nữa thì có thể khác
----------------

Chỉ lưu ý bạn, viết tiếng việt cho nó rõ thì mọi ngươi mời hiểu mà giúp
 
Upvote 0
Dạ, em sẽ rút kinh nghiệm ạ, hiện tại cái em cần là ô textbox nào có giá trị khi bấm commandbutton thì nó sẽ nhập vào A1:A3 thôi ạ, theo thứ tự từ A1 xuống ạ, Ví dụ như TB1 và TB3 có giá trị, thì nó sẽ nhập vào A1 và A2 và bỏ trống A3 hoặc TB2 và TB3 có giá trị, thì nó sẽ cũng sẽ nhập vào A1 và A2 bỏ A3 ạ, cứ nhấp commandbutton thì nó sẽ chép đè lên xóa hết dữ liệu cũ ạ!
Người học lập trình cần học sự chu đáo. Chu đáo về lô gic giải thuật và chu đáo về ngữ pháp. Điển hình là viết xong thì đọc lại xem mình viết đã đúng ý mình muốn nói chưa.

Lô gic bạn muốn là xét các textbox(es) từ 1 đến 3, và điền tuần tự vào các ô từ A1 đến A3. Cứ có dữ liệu là điền, không nhất thiết phải textbox1 vào A1.

a = Array( "TextBox1", "TextBox2", "TextBox3" ) ' có bao nhiêu TextBox thì cứ thảy vào đây, theo đúng thứ tự muốn xét thằng nào trước
Set rg = Range("A1") ' bắt đầu ghi từ ô A1
rg.Resize(Ubound(a) - LBound(a) + 1, 1).Value = "" ' xoá dữ liệu cũ
For each ctlName In a
If Me.Controls(ctlName).Vavlue <> "" Then
rg.Value = Me.Controls(ctlName).Value
Set rg = rg.Offset(1,0) ' chuyển vị trí ghi vào ô kế tiếp
End If
Next ctlName
Set rg = Nothing

Lưu ý là code này chỉ có tính cách minh hoạ giải thuật. Về cách hoạt động thì tôi không khuyến khích làm việc kiểu này, dữ liệu có thể sai tá lả mà không kiểm soát được.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom