Đào Trưởng Nguyên
Đào Trưởng Nguyên
Thảo luận 19 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 462 lượt xem

em gặp vấn đề như sauDVH P 300 Kg CO 600Em có 5 textboxTextbox1 em điền nội dung

Chào thầy, em gặp vấn đề như sau:

DVH - P - 300 Kg - CO 600

Em có 5 textbox:

Textbox1 em điền nội dung text là: DVH

Textbox2 em điền nội dung text là: P

Textbox3 em điền nội dung text là: 300 Kg

Textbox4 em điền nội dung text là: CO 600

Em muốn sau khi em điền xong nội dung 4 textbox đó và nhấn nút Lưu thì sau khi nhấn nút Lưu, Textbox5 sẽ hiển thị nội dung là: 

DVH - P - 300 Kg - CO 600

Em đã thử dùng cách cho mỗi textbox chuyển nội dung vào ô trong sheet, ví dụ: 

Nội dung textbox1 vào ô A1 của sheet 1

Nội dung textbox2 vào ô B1 của sheet 1

Nội dung textbox3 vào ô C1 của sheet 1

Nội dung textbox4 vào ô D1 của sheet 1

Rồi ô E1 của sheet 1 sẽ có công thức là: = ô A1 & "-" & B1 & "-"&C1 & "-"&D

Sau đó lấy giá trị của ô E1 sheet 1 nạp vào Textbox 5, thì em bị lỗi là phải LƯU TỐI THIỂU 2 LẦN MỚI ĐƯỢC.

Thầy có cách nào giúp em sau khi điền nội dung và 4 text box và nhấn phím lưu, thì kết quả sẽ hiện ngay ở textbox 5 k?

Em cám ơn thầy

Thảo luận 19 câu trả lời
Lượt xem 462 lượt xem
Vỗ tay vỗ tay
Đào Trưởng Nguyên 08:08 - Aug 15, 2020

Chào bạn bạn có thể đẩy file lên được không?

hoặc bạn sử dụng code sau xem đúng không sự kiện nút lưu?

Option Explicit

Private Sub CommandButton1_Click()

    Sheet1.Range("A1").Value = Me.TextBox1.Text

    Sheet2.Range("A1").Value = Me.TextBox2.Text

    Sheet3.Range("A1").Value = Me.TextBox3.Text

    Sheet4.Range("A1").Value = Me.TextBox4.Text

    Sheet4.Range("B1").Value = Me.TextBox1.Text & "-" & Me.TextBox2.Text & "-" & Me.TextBox3.Text & "-" & Me.TextBox4.Text

    Me.TextBox5.Text = Me.TextBox1.Text & "-" & Me.TextBox2.Text & "-" & Me.TextBox3.Text & "-" & Me.TextBox4.Text

End Sub


Vỗ tay vỗ tay
Đào Trưởng Nguyên 20:08 - Aug 17, 2020

Thưa thầy, em đã khắc phục được rồi, nhưng khi em muốn thêm thông tin của dòng A2 - sheet 1 vào textbox5 thì lại phải Lưu 2 lần, thầy chỉ em cách 

Vỗ tay vỗ tay
Đào Trưởng Nguyên 08:08 - Aug 18, 2020

Chào bạn không cần bạn nhé dưới đoạn code đó bạn ghi thêm điều kiện muốn lưu là dược trước khi đóng sub

Vỗ tay vỗ tay
Đào Trưởng Nguyên 14:08 - Aug 22, 2020

Private Sub Cmb_Luu_Click()


Dim i As Long


 i = ActiveCell.Row

 

    Sheets("Data").Range("BL" & i).Value = "DVH - " & " - " & Sheets("Data").Range("BO2").Value & Me.Cb_TaiTrong.Text & " - " & " - " & Me.Cb_KieuMC.Text & " - " & Me.Cb_TocDo.Text & " - " & Me.Tb_SoTang.Text & "/" & Me.Tb_SoStop.Text & "/" & Me.Tb_SoCua.Text


End Sub


Thầy ơi, khi em thêm Sheets("Data").Range("BO2").Value vào đoạn code trên thì em phải nhấn nút lưu 2 lần mới có thể cập nhật được thông tin ạ? Chứ không thể nhấn nút lưu 1 lần được.


Sheets("Data").Range("BO2").Value  của em là 1 cái biến, và chứa công thức Vlookup. Em không biết cách ghi thêm điều kiện muốn lưu là như thế nào, thầy cho em xin code cụ thể nhe! Cám ơn thầy


Vỗ tay vỗ tay
Đào Trưởng Nguyên 15:08 - Aug 22, 2020

Bạn thử cho biến bằng Sheets("Data").Range("BO2").Value  bạn cho bằng một biến rồi nối vào trong đó xem.


Vỗ tay vỗ tay
Đào Trưởng Nguyên 09:08 - Aug 23, 2020

Vẫn không được nha thầy!

Vỗ tay vỗ tay
Đào Trưởng Nguyên 17:08 - Aug 23, 2020
Đào Trưởng Nguyên 17:08 - Aug 23, 2020

Em đang gặp vấn đề như sau: 

Ô J2 và K2 là 2 ô em chứa công thức hàm.

Nhưng mỗi lần em thay đổi thông số, thì ô I2 lại không cập nhật ngay, mà em phải nhấn nút lưu 2 lần mới cập nhật. Thầy hướng dẫn em khắc phục với.

Link hình ảnh 


Vỗ tay vỗ tay
Đào Trưởng Nguyên 17:08 - Aug 23, 2020

Em đang gặp vấn đề như sau: 

Ô J2 và K2 là 2 ô em chứa công thức hàm.

Nhưng mỗi lần em thay đổi thông số, thì ô I2 lại không cập nhật ngay, mà em phải nhấn nút lưu 2 lần mới cập nhật. Thầy hướng dẫn em khắc phục với.

https://imgur.com/bqW8GvH

Còn đây là file excel của em

https://drive.google.com/file/d/1LpX_...

Mong thầy chỉ giúp em!

Vỗ tay vỗ tay
Đào Trưởng Nguyên 09:08 - Aug 24, 2020

Mình thấy bình Thường mà bạn bạn thử để chế độ tính toán là Automatic (Phần Fomualas > biểu tượng máy tính )


Vỗ tay vỗ tay
Đào Trưởng Nguyên 19:08 - Aug 25, 2020

Em có J2 = VLOOKUP(D2,Table3[[Nhu cầu]:[Mã]],2,0)

Và đây là Table3:  

Thang gia đìnhP
Thang thực phẩmD
Thang tải hàngF
Thang quan sátO

 

Có nghĩa là em muốn 

Khi D2 = Thang gia đình thì I2 = P

Khi D2 = Thang thực phẩm thì I2 = D

Khi D2 = Thang tải hàng thì I2 = F

Khi D2 = Thang quan sát thì I2 = O

Em có: K2 =TRIM(LEFT(H2,SEARCH(" ",H2)))

Em có code như sau:

Private Sub Cmb_Luu_Click()

Dim i As Long

 i = ActiveCell.Row

 

    Sheets("Data").Range("D" & i).Value = Cb_NhuCau.Value  

    Sheets("Data").Range("E" & i).Value = Me.Cb_TaiTrong.Text

    Sheets("Data").Range("F" & i).Value = Me.Cb_TocDo.Text

    Sheets("Data").Range("G" & i).Value = Me.Cb_KieuMC.Text

    

    Sheets("Data").Range("A" & i).Value = Me.Tb_SoTang.Text

    Sheets("Data").Range("B" & i).Value = Me.Tb_SoStop.Text

 

    Sheets("Data").Range("C" & i).Value = Me.Tb_SoCua.Text

    

    Sheets("Data").Range("H" & i).Value = Me.Tb_KTC.Text

    

    Sheets("Data").Range("I" & i).Value = "DVH - " & Sheets("Data").Range("j2").Text & " - " & Me.Cb_TaiTrong.Text & " - " & Me.Cb_KieuMC.Text & Sheets("data").Range("k2").Value & " - " & Me.Cb_TocDo.Text & " - " & Me.Tb_SoTang.Text & "/" & Me.Tb_SoStop.Text & "/" & Me.Tb_SoCua.Text

    'Sheet Nguon dong A2

    

    Sheets("data").Range("A2").Value = Tb_SoTang.Value

    Sheets("data").Range("B2").Value = Tb_SoStop.Value

 

    Sheets("data").Range("C2").Value = Tb_SoCua.Value

    Sheets("data").Range("D2").Value = Cb_NhuCau.Value 

    Sheets("data").Range("E2").Value = Cb_TaiTrong.Value

    Sheets("data").Range("F2").Value = Cb_TocDo.Value

    Sheets("data").Range("G2").Value = Cb_KieuMC.Value

    

    Sheets("Data").Range("H2").Value = Tb_KTC.Value

     Sheets("data").Range("I2").Value = Sheets("Data").Range("i" & i).Value

     

MsgBox " Da luu "

End Sub

Ý muốn của em là như thế này:

Số tầngSố stopSố cửaLoại ThangTải trọngTốc độKiểu mở cửaKích thước cửaMã hiệu thang
121212Thang thực phẩm300 Kg30 m/pCO900 X 2000DVH - D - 300 Kg - CO900 - 30 m/p - 12/12/12

Khi em nhấn vào nút báo giá, và nhập thông số tương ứng số tầng = 12, số stop = 12, số cửa = 12, loại thang = thang thực phẩm, tải trọng là 300 kg, tốc độ là 30 m/p, kiểu mở cửa là CO, kích thước cửa là 900 x 2000 

thì ta sẽ có mã hiệu thang là DVH - D - 300 Kg - CO900 - 30 m/p - 12/12/12

Nhưng sau khi lưu xong, và em muốn thay đổi Loại thang thành thang tải hàng, kích thước cửa là 600 x 2000. Nhưng các thông số khác vẫn giữ nguyên thì kết quả sẽ như sau:

Số tầngSố stopSố cửaLoại ThangTải trọngTốc độKiểu mở cửaKích thước cửaMã hiệu thang
121212Thang tải hàng300 Kg30 m/pCO600 X 2000DVH - D - 300 Kg - CO900 - 30 m/p - 12/12/12

 

Đúng ra Mã hiệu thang sẽ thay đổi thành DVH - F - 300 Kg - CO600 - 30 m/p - 12/12/12 chứ không phải là DVH - D - 300 Kg - CO900 - 30 m/p - 12/12/12

Có nghĩa là Mã hiệu thang vẫn giữ lại thông số của dữ liệu cũ, muốn mã hiệu thang cập nhật lại thì em phải nhấn nút lưu tầm 2 3 lần thì mã hiệu thang mới cập nhật lại đúng. Và khi em lại thay đổi thông số của Loại Thang và Kích thước cửa thì mã hiệu thang vẫn sẽ giữ lại dữ liệu của thông số trước là DVH - F - 300 Kg - CO600 - 30 m/p - 12/12/12, và em lại phải nhấn nút lưu 2 lần để Mã hiệu thang cập nhật mới.

Em mong thầy có thể giúp em khắc phục sự cố này, Em đã làm hết cách rồi nhưng không thể nào được.


Vỗ tay vỗ tay
Đào Trưởng Nguyên 14:08 - Aug 27, 2020

Thầy ơi! Em vẫn đang đợi thầy hướng dẫn ạ

Vỗ tay vỗ tay
Đào Trưởng Nguyên 14:08 - Aug 27, 2020

Bạn tham khảo file kết quả ở đây nhé:

https://drive.google.com/file/d/16Hs6...


Về nguyên tắc sửa thì bạn đang chưa đúng ở chỗ phải ghi nhớ dòng đã lấy ra để sửa (ActiveCell). Tại UserForm_Initialize cần thêm 1 dòng lệnh để lưu số dòng này vào 1 vị trí, ví dụ như ô L1.

Sau khi bạn sửa thông tin, bấm Lưu thì sẽ lưu đúng vào vị trí dòng lưu đã có tại ô L1, chứ không phải activeCell nữa, bởi vì trong quá trình chạy code vị trí ActiveCell có thể bị thay đổi.

Bạn xem lại bài học về kỹ thuật lấy dữ liệu từ Sheet vào userForm để sửa (bài 12 chương 12)

Vỗ tay vỗ tay
Đào Trưởng Nguyên 14:08 - Aug 27, 2020

Ở đây bạn nên làm rõ 2 quá trình:

1. Quá trình thêm mới 1 nội dung

Hiện bạn đang làm đúng

2. Quá trình sửa nội dung

Cái này bạn đang chưa rõ ràng và đang lẫn lộn trong code Thêm mới. Cần tách riêng quá trình sửa ra 1 UserForm riêng. Userform này gần giống với userform thêm, nhưng chức năng hoạt động thì khác nhau.

Thêm mới sẽ mở ra khi bạn muốn nhập 1 nội dung hoàn toàn mới, khi lưu thì lưu vào dòng cuối + 1.

Sửa thì sẽ mở ra khi bạn muốn chọn 1 dòng nội dung đã có để sửa. Nội  dung tại dòng này sẽ đặt vào đúng vị trí các textbox, combobox trong userform Sửa. Khi lưu thì lưu đúng vào vị trí dòng đã lấy ra để sửa.

Vỗ tay vỗ tay
Đào Trưởng Nguyên 14:09 - Sep 10, 2020

Thưa thầy, Em đã làm theo những lời thầy hướng dẫn ở https://drive.google.com/file/d/16Hs6... 

Tuy nhiên dòng L1 lại hiển thị kết quả vị trí số dòng, chứ không hiển thị kết quả mà em mong muốn

Vỗ tay vỗ tay
Đào Trưởng Nguyên 14:09 - Sep 10, 2020

Chào bạn không tìm thấy drive bạn

Vỗ tay vỗ tay
Đào Trưởng Nguyên 13:09 - Sep 11, 2020
Đào Trưởng Nguyên 13:09 - Sep 11, 2020
Đào Trưởng Nguyên 14:09 - Sep 11, 2020

Ô L1 hiển thị số dòng có ý nghĩa là vị trí dòng mà bạn lấy nội dung ra để sửa.

Không rõ bạn mong muốn kết quả gì? Nếu là mã hiệu thang thì bạn có thể gán thêm giá trị cho ô L2 lấy nội dung này là:

Range("L2").Value = Range("I" & Range("L1").Value).Value

Tức là dựa theo số dòng trong ô L1 bạn có thể lấy bất cứ giá trị nào trong bảng, chỉ cần xác định thêm cột nào thôi.

Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông