Vài thắc mắc về Userform và hàm tìm kiếm nhờ được giúp đỡ.

Liên hệ QC

ngocvan1702

Thành viên mới
Tham gia
24/5/08
Bài viết
10
Được thích
1
Em mới tập tành vook Excel nhờ cuốn sách của Bác Phan Tự Hướng. Nhưng có nhiều chỗ không hiểu và không biết cách xây dựng hàm.
Trong file đính kèm em đã copy hàm của bác Hướng và có khả năng nhập dữ liệu từ Userform vào sheet. có điều không làm thế nào để số thứ tự tự nhảy được.
- Giờ em muốn xây dựng một form hoặc một sheet có chức năng thống kê, tìm kiếm: Theo tên doanh nghiệp hoặc tên người đại diện, hoặc số đăng ký kinh doanh, hoặc theo địa bàn. Nhưng không hiểu phải xây dựng hàm như thế nào.
- Ví dụ tìm kiếm được rùi, muốn in một doanh nghiệp cụ thể theo mẫu ra giấy với các thông tin có trong file tổng hợp.
Mong các bác giúp đỡ.
Trân trọng cám ơn.
 

File đính kèm

Mình cũng giống bạn, cũng đang tập tành VBA theo cuốn sách của bác Hướng. Đọc code của bạn thấy bạn viết rất OK. Việc làm số thứ tự nhảy bạn chỉnh lại thế này xem thử có được không
-chỉnh lại dòng này (chỗ màu đỏ)
nextrow = Application.WorksheetFunction.CountA(Range("b:b")) + 3
-thêm vào dòng này
Cells(nextrow, 1) = nextrow - 4
 
Upvote 0
Mình cũng giống bạn, cũng đang tập tành VBA theo cuốn sách của bác Hướng. Đọc code của bạn thấy bạn viết rất OK. Việc làm số thứ tự nhảy bạn chỉnh lại thế này xem thử có được không
-chỉnh lại dòng này (chỗ màu đỏ)

-thêm vào dòng này

Oh, hay quá, cám ơn bác. Nhưng em không hiểu lệnh đó tại sao để ở "B:B" và phải +3
bác giải thích giúp em được không.
Giờ em muốn làm sheet lọc có điều kiện thì lập trình như thế nào nhỉ?
Thanks bác.
 
Upvote 0
-Sở dĩ lệnh đó phải để ở cột B vì cột này luôn có dữ liệu ( theo điều kiện if ở phía trên)
-Là + 3 (chứ không phải +2) vì ta nhập liệu vào ô trắng phía dưới nên phải cọng thêm 1 dòng nữa.
-Các yêu cầu khác của bạn phải cụ thể hơn (nghĩa là phải có mẫu) thì người khác mới giúp bạn được.
 
Upvote 0
-Sở dĩ lệnh đó phải để ở cột B vì cột này luôn có dữ liệu ( theo điều kiện if ở phía trên)
-Là + 3 (chứ không phải +2) vì ta nhập liệu vào ô trắng phía dưới nên phải cọng thêm 1 dòng nữa.
-Các yêu cầu khác của bạn phải cụ thể hơn (nghĩa là phải có mẫu) thì người khác mới giúp bạn được.
Ra thế, cần fải căn cứ theo điều kiện hả bác.
Vâng, chiều nay em mới soạn xong một vài ví dụ. em gửi kèm theo, bác ngó qua rùi cho em vài đường cơ bản nhé.
ah, thêm nữa:
- giờ em muốn chèn thêm câu lệnh "khi nhập dữ liệu vào ô số chứng nhận đăng ký kinh doanh, nếu là số đã có trong dữ liệu rồi thì có một thông báo hiện ra, đồng thời cho xem các dữ liệu liên quan đến số chứng nhận đăng ký kinh doanh đó. Chấp nhâạ --> nhập lại dữ liệu, bỏ qua --> giữ nguyên dữ liệu ban đầu.
- Textbox năm sinh và ngày cấp của đăng ký kinh doanh để ở dạng date.
- Ví như: Một doanh nghiệp có nhiều giấy phép đủ điều kiện kinh doanh: xăng dầu, khí dầu mỏ hoá lỏng, rượu,...
Mỗi loại giấy phép đó em muốn nhập vào một dòng có được không ah, để dữ liệu lần sau tiếp tục nhập vào các dòng dứoi nó.
Vài câu hỏi, cùng ví dụ em đã up lại trong file đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Trước mắt đề nghị bạn một số điểm sau:
1. Đặt tên sheet: không nên có dấu tiếng Việt và khoảng trắng
2. Thêm vào sheet ho ca the 1 cột để cấu trúc dữ liệu giống như sheet doanhnghiep.
3. Gộp 2 sub nhaplieu và nhaplieudn thành 1.
4. Bổ sung vào sub đoạn code sau:
Mã:
Dim Wsh As Worksheet
  If loaihinh.Text = "" Then
      Set Wsh = Sheets("Ho ca the")
  Else
      Set Wsh = Sheets("Doanh nghiep")
 End If
    Set Rng = Wsh.Range("H:H").Find(dkkd1.Text, LookIn:=xlValues, LookAt:=xlWhole)
          If Not Rng Is Nothing Then
               MsgBox "SO NAY DA CO ROI"
               Exit Sub
          End If
    Wsh.Activate
    nextrow = Application.WorksheetFunction.CountA(Range("b:b")) + 3
.....
5. Các phần còn lại sẽ tính tiếp
 
Upvote 0
Thanks bác, em xem câu lệnh tìm kiếm của bác, roài vook tiếp, không hiểu lại thỉnh giáo các bác. Hi
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom