Các câu hỏi về Form trong Excel VBA

Liên hệ QC

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
Private Sub UserForm_Initialize()
.......................
.......................
.......................
End Sub


Em xin hỏi, sự kiện khí nào mình dùng sự kiện này Initialize

Cám ơn
 
Tôi có tạo 1 Add in trong đó UserForm co de che độ UserForm.Show vbModeless nhung trong Excel 2003-2010 khi di chuyen qua các Worbook khác Form vẫn hiện nhưng trong Excel 2016 thì lại không được. Niếu được mong các anh chị trong diễn đàn hướng dẫn giúp với ah.
Cám ơn mọi người rất nhiều.
 
Upvote 0
mình có tạo một form nhập liệu chọn ô nhập liệu là combobox thì có lựa chọn nào để nếu nhập không đúng giá trị mình đã chọn trước ở rowsource thì chương trình sẽ báo lỗi không cho nhập tiếp không mọi người.
 
Upvote 0
mình có tạo một form nhập liệu chọn ô nhập liệu là combobox . . . .
1./ Đầu câu chưa viết hoa; Cần tôn trọng ngữ fáp tiếng Việt ta hơn.
2./
- Mình có tạo một form nhập liệu (để) chọn ô nhập liệu là combobox
- Mình có tạo một form nhập liệu chọn (dữ liệu trong) ô nhập liệu là combobox
- . . . . .
3./
thì có lựa chọn nào để nếu nhập không đúng giá trị mình đã chọn trước ở rowsource thì chương trình sẽ báo lỗi không cho nhập tiếp không
Chưa thể hiểu được mệnh đề này luôn!
 
Upvote 0
1./ Đầu câu chưa viết hoa; Cần tôn trọng ngữ fáp tiếng Việt ta hơn.
2./
- Mình có tạo một form nhập liệu (để) chọn ô nhập liệu là combobox
- Mình có tạo một form nhập liệu chọn (dữ liệu trong) ô nhập liệu là combobox
- . . . . .
3./
Chưa thể hiểu được mệnh đề này luôn!
upload_2017-9-25_21-49-7.pngupload_2017-9-25_21-49-7.png
Ý của mình là mình tạo form nhập liệu như này, một năm có 12 tháng và mình đã chọn sẵn các giá trị để nhập rồi. Mình muốn là nếu nhập giá trị khác như 13 thì báo lỗi không cho nhập.
 

File đính kèm

  • nhap du lieu.xlsm
    18.7 KB · Đọc: 17
Upvote 0
Ý của mình là mình tạo form nhập liệu như này, một năm có 12 tháng và mình đã chọn sẵn các giá trị để nhập rồi. Mình muốn là nếu nhập giá trị khác như 13 thì báo lỗi không cho nhập.
Quá chi là dễ luôn: Bạn tạo 1 ComboBox trên form; Nguồn của nó là vùng 12 hàng (1 cột) chứa các số từ 1 đến 12;
Khi đó, người nhập làm chi có số nào khác 12 (tháng) để chọn mà nhập đâu kia chứ.

Còn nếu bí thì sau 24 giờ nữa mình sã giúp (Bạn có 24 giờ để thử sức mình đó & chúc thành công!)
 
Upvote 0
Quá chi là dễ luôn: Bạn tạo 1 ComboBox trên form; Nguồn của nó là vùng 12 hàng (1 cột) chứa các số từ 1 đến 12;
Khi đó, người nhập làm chi có số nào khác 12 (tháng) để chọn mà nhập đâu kia chứ.

Còn nếu bí thì sau 24 giờ nữa mình sã giúp (Bạn có 24 giờ để thử sức mình đó & chúc thành công!)
Mình đã tạo ComboBox trên form và chọn được giá trị từ 1-12 rồi, nhưng ngoài các giá trị nhập lựa chọn 1-12 thì khi mình nhập trực tiếp VD: 13 14 thì nó vẫn nhận các giá trị này. Mình hỏi là có cách nào để ngoài những giá trị mình cho phép lựa chọn là từ 1-12 ra thì không nhập được giá trị khác. Như cái file mà mình đã tải lên ấy là ngoài giá trị lựa chọn thì khi mình nhập số khác nó vẫn nhận.
 
Upvote 0
Vậy bạn thêm các dòng lệnh này vô macro của nút lệnh 'Save":
PHP:
Private Sub CmdNhap_Click()
Dim Endr As Long
With Sheets("sheet1")
    If ComboBox1.Text < "1" Or ComboBox1.Text > "9" Then   '*'
        MsgBox "Cút Ngay!", , "Xin Chào &"        '*'
    Else         '*'
        Endr = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A" & Endr + 1) = ComboBox1.Text
    End If        '*'
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Vậy bạn thêm các dòng lệnh này vô macro của nút lệnh 'Save":
PHP:
Private Sub CmdNhap_Click()
Dim Endr As Long
With Sheets("sheet1")
    If ComboBox1.Text < "1" Or ComboBox1.Text > "9" Then   '*'
        MsgBox "Cút Ngay!", , "Xin Chào &"        '*'
    Else         '*'
        Endr = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A" & Endr + 1) = ComboBox1.Text
    End If        '*'
End With
End Sub
Không chạy bạn ơi, nhập bao nhiêu nó cũng vẫn nhận bình thường. Ngoài ra mình hiểu code bạn viết là nếu nhỏ hơn 1 hoặc lớn hơn 9, vậy nếu dùng cho ký tự hoặc vùng lựa chọn trước (VD mình đặt name từ ô c1:c12 là "thang") thì code viết thế nào
 
Upvote 0
Upvote 0
Không cho nhập vào combobox, bằng cách đổi thuộc tính style của combobox như sau:
View attachment 183772
Thanks bạn cách này hay, nhưng nếu vào trường hợp nhiều ký tự giống nhau và số lượng lớn thì hơi khó áp dụng vd như: list các tỉnh trong cả nước tìm được đúng đến tỉnh mình muốn thì cũng hơi mệt. Có câu lệnh nào để khống chế không đúng giá trị trong lits thì nó không cho nhập không.
 
Upvote 0
Thanks bạn cách này hay, nhưng nếu vào trường hợp nhiều ký tự giống nhau và số lượng lớn thì hơi khó áp dụng vd như: list các tỉnh trong cả nước tìm được đúng đến tỉnh mình muốn thì cũng hơi mệt. Có câu lệnh nào để khống chế không đúng giá trị trong lits thì nó không cho nhập không.
Cách thì có, nhưng bạn cứ đổi yêu cầu hoài anh em chạy theo không kịp đâu. Ba hồi là chỉ có 12 tháng, ba hồi là tỉnh thành giúp xong bạn chuyển sang con người,... vậy bạn muốn gì up cái file đúng yêu cầu thực tế của bạn đi sẽ được anh em hưởng ứng giúp đỡ, lưu ý là sẽ không được giúp nếu đưa cái file không đúng thưc tế của bạn, vì giúp xong bạn tiếp tục đổi yêu cầu nửa thì mất công lắm, anh em trong diễn đàn cũng có nhiều người rảnh lắm nhưng lại có ít người kiên nhẫn.
 
Lần chỉnh sửa cuối:
Upvote 0
Càng nhiều bậc tự do, thì CSDL càng nhanh đến thùng rác mà, cố lên!
 
Upvote 0
Cách thì có, nhưng bạn cứ đổi yêu cầu hoài anh em chạy theo không kịp đâu. Ba hồi là chỉ có 12 tháng, ba hồi là tỉnh thành giúp xong bạn chuyển sang con người,... vậy bạn muốn gì up cái file đúng yêu cầu thực tế của bạn đi sẽ được anh em hưởng ứng giúp đỡ, lưu ý là sẽ không được giúp nếu đưa cái file không đúng thưc tế của bạn, vì giúp xong bạn tiếp tục đổi yêu cầu nửa thì mất công lắm, anh em trong diễn đàn cũng có nhiều người rảnh lắm nhưng lại có ít người kiên nhẫn.
Tại mình mới học về phần này nên cũng không biết có thể làm được những gì, với form nên muốn tìm hiểu thêm để áp dụng vào thực tế công việc. File mình gửi nên mình mới đang làm được một nửa. Mình muốn mã khách hàng và mặt hàng trong ô nhập liêu nếu không đúng như bên sheet!data thì sẽ không cho nhập. Ngoài ra khi nhập mã khách hàng thì tên khách hàng, địa chỉ tự động điền vào cột d và e, điền mặt hàng thì chủng loại, đơn giá cũng điền tương ứng (phần này nếu dùng hàm vlookup của excel thì khi dữ liệu gộp lại lên nhiều thì chạy chậm lắm). Tại nhiều thứ quá nên không dám hỏi một lèo vừa làm vừa tìm hiểu và hỏi trên mạng
 

File đính kèm

  • form nhap du lieu.xlsm
    53.2 KB · Đọc: 13
Upvote 0
Tại mình mới học về phần này nên cũng không biết có thể làm được những gì, với form nên muốn tìm hiểu thêm để áp dụng vào thực tế công việc. File mình gửi nên mình mới đang làm được một nửa. Mình muốn mã khách hàng và mặt hàng trong ô nhập liêu nếu không đúng như bên sheet!data thì sẽ không cho nhập. Ngoài ra khi nhập mã khách hàng thì tên khách hàng, địa chỉ tự động điền vào cột d và e, điền mặt hàng thì chủng loại, đơn giá cũng điền tương ứng (phần này nếu dùng hàm vlookup của excel thì khi dữ liệu gộp lại lên nhiều thì chạy chậm lắm). Tại nhiều thứ quá nên không dám hỏi một lèo vừa làm vừa tìm hiểu và hỏi trên mạng
Mình thực hiện cho cái Combobox mã khách hàng thôi còn cái còn lại bạn tự nghiên cứu và phát triển.
 

File đính kèm

  • form nhap du lieu.xlsm
    56.2 KB · Đọc: 53
Upvote 0
Tại mình mới học về phần này nên cũng không biết có thể làm được những gì, với form nên muốn tìm hiểu thêm để áp dụng vào thực tế công việc. File mình gửi nên mình mới đang làm được một nửa. Mình muốn mã khách hàng và mặt hàng trong ô nhập liêu nếu không đúng như bên sheet!data thì sẽ không cho nhập. Ngoài ra khi nhập mã khách hàng thì tên khách hàng, địa chỉ tự động điền vào cột d và e, điền mặt hàng thì chủng loại, đơn giá cũng điền tương ứng (phần này nếu dùng hàm vlookup của excel thì khi dữ liệu gộp lại lên nhiều thì chạy chậm lắm). Tại nhiều thứ quá nên không dám hỏi một lèo vừa làm vừa tìm hiểu và hỏi trên mạng
Nếu bạn muốn làm phiếu bán hàng thì nên sử dụng SheetForm thì sẽ thuận tiện hơn UserForm nhiều, bạn có thể tham khảo cách làm trong File ở bài viết của Link sau:
http://www.giaiphapexcel.com/diendan/threads/theo-dõi-và-truy-vấn-đơn-thuốc-nơi-phòng-khám-bệnh.126073/
 
Upvote 0
Mình đã tạo được Form

Đã xong phần tạo form nhập dữ liệu từ CSDL TenCV, căn cứ vào mã hiệu để tra cứu STT, Tên HMCV, ĐVT.

Nhờ các bạn hướng dẫn CODE căn chỉnh ngay trong Form:

1/ phần Wrap text và canh trái trong cộtC
2/ phần canh Vertical và Horizotal cột A, B, C, E)
3/ Mình tạo thêm 1 private Sub phụ tự động đánh STT và Call nó thì không ra kết quả là sao nhỉ? Mong các bạn giải đáp giúp
 

File đính kèm

  • CSDL hoi 5.10.2017 so2 .xls
    118 KB · Đọc: 21
Upvote 0
Chào các anh Chị, e có tìm được một file này trên mạng, giờ e muốn thêm code tìm kiếm tại TextBox1 thì những dũ liệu thỏa mãn sẽ hiện lên ở
Listbox lbUser, khi TextBox1 ="" thì hiện lên tất cả danh sách. Mong các anh chị giúp đỡ em ạ. Em xin cảm ơn!
 

File đính kèm

  • Test1.xlsm
    141.7 KB · Đọc: 17
Upvote 0
Chào các anh Chị, e có tìm được một file này trên mạng, giờ e muốn thêm code tìm kiếm tại TextBox1 thì những dũ liệu thỏa mãn sẽ hiện lên ở
Listbox lbUser, khi TextBox1 ="" thì hiện lên tất cả danh sách. Mong các anh chị giúp đỡ em ạ. Em xin cảm ơn!
Trước khi viết Code.. . , ta bạn sâu hơn về chức năng của Form. Có fải Form để:
a./ Nhập mới (dữ liệu) (DL)
b./ Sửa chữa, bổ sung DL
c./ Xóa dòng DL nào đó?

Nếu là mình thì trên ListBox nên không hiện gì hết trừ fi việc tìm kiếm trong TextBox1 có kết quả; thì hiển thị kết quả tìm được này.
Để vậy vùng ô làm nguồn sẽ không =Data như bạn mà nên tạo ra 1 nơi có địa chỉ AA1:AF99 (cùng lắm là 98 dòng dữ liệu)
Vùng này làm nguồn vĩnh viễn cho ListBox dù có hay không có chứa dữ liệu.
 
Upvote 0
Trước khi viết Code.. . , ta bạn sâu hơn về chức năng của Form. Có fải Form để:
a./ Nhập mới (dữ liệu) (DL)
b./ Sửa chữa, bổ sung DL
c./ Xóa dòng DL nào đó?

Nếu là mình thì trên ListBox nên không hiện gì hết trừ fi việc tìm kiếm trong TextBox1 có kết quả; thì hiển thị kết quả tìm được này.
Để vậy vùng ô làm nguồn sẽ không =Data như bạn mà nên tạo ra 1 nơi có địa chỉ AA1:AF99 (cùng lắm là 98 dòng dữ liệu)
Vùng này làm nguồn vĩnh viễn cho ListBox dù có hay không có chứa dữ liệu.
Chào bác, em hnay đi làm, giờ mới về online được bác à. Mục đích của em là tìm kiếm dữ liệu trong List Box. Khi tìm thấy thì em kích đúp chuột sẽ lấy dữ liệu ra bảng khác bác ạ. Em chưa hiểu tại sao lại chỉ giới hạn 98 dòng dữ liệu, còn cột thì giới hạn bao nhiêu hả bác?
Mong bác chỉ giúp em ạ!
 
Upvote 0
Web KT
Back
Top Bottom