{Giúp đỡ} Tạo userform để nhập liệu

Liên hệ QC

romkut3

Thành viên hoạt động
Tham gia
9/4/13
Bài viết
109
Được thích
3
dạ tình hình nhờ anh chị giúp đỡ em thử cái form này mục đích là để mail merge sang word thôi, em cố gắng nhưng vẫn mắc 1 số lỗi như sau:
1. Vấn đề của em là: khj mình nhập cái j vào thì nó sẻ hiện cột tên công trình vào listbox1, khj mình kích vào 1 công trình nào đó thì nó sẻ hiện các dữ liệu đã nhập trong các tab userform tương ứng.
2. Em muốn form nó lưu lại những gì đã nhập ở lần cuối cùng.
3. Vì có nhiều phụ lục nên mỗi 1 tab em sẻ làm 1kiểu khác nhau cho đỡ nhầm ạ. Do còn rất nhiều dữ liệu điền và em đang thiết kế từ từ lại ạ.
4. Các dữ liệu của em nhập vào dạng text, có mutiline, và có dạng số, cái này em cũng đọc trên diễn đàn.
5. 3 nút comand: xóa để nhập mới: xóa trắng các ô để nhập mới 1 công trình. Nút sửa là để khj mình pick zô công trình nào sai thì mình sẻ sửa lại và tự động lưu lại chứ k thêm mới. Nút nhập vào là để khj xóa xong thì mình sẻ nhập vào 1 dòng mới.
6. Cái này màn hình em full hết, k bị mất các nút comand... mọi người down về mà k full có thể chỉnh lại hộ em đc k?
7. Và cuối cùng là thú thật là em k biết j về lập trình cả, chỉ kiếm các mẫu form đã lập trình sẵn... tự thiết đặt lại và dán code lại theo ý của mình vào thôi ạ... em chỉ hiểu sơ sơ. Có j trong code a note khj chú lại công thức lệnh để làm j em sẻ tự hiểu và tự mày mò thêm.
Em cũng xjn lỗi do dữ liệu nó chưa rõ ràng nên ae k hiểu đc ý của em. Cám ơn anh đã quan tâm ạ.
* Dữ liệu mang tính chất minh họa và đa số là dạng text, nếu dạng số trong code các bạn có thể chỉ mình định dạng nó đc k?
*** Mình mới up lại file, các bạn, ace xem lại dùm ạ
 

File đính kèm

  • mail - Copy.xlsm
    50.5 KB · Đọc: 16
Lần chỉnh sửa cuối:
oh thì ra a cũng là người trong ngành, dạ mục đích chính khj nhập form này xong thì em sẻ xuất ra riêng 1 file exel gồm dòng 5 (là tiêu để) dưới là dữ liệu của 1 công trình, xong chuyển sang word để làm hồ sơ ktnt theo tt49 ấy anh, em nghĩ là nên chuyển sang word để chuyển cho chủ đầu tư quản lý nên mới làm cái này.
Trong hsktnt nó có nhiều bảng chẳng hạn như ở sheet mau05, em sẻ thiết kế riêng ra 1 bảng rồi hyperlink vào trong word... và còn nhiều mẫu khác nữa ( phụ lục 06,07,08.... theo tt49) nên em mới dùng nhiều tab trong userform.
Còn vụ mà làm hẳn trên exel chắc em k làm đc... vì k đủ trình với lại mục đích của em chỉ đơn giản như trên thôi ạh... CÒn vụ desing lại user form thì để xong 2 khoảng kia đã.. em bố trí cái tab tìm công trình và chung là vì cái tab chung nó sẻ có ở tất cả các phục lục... còn những dữ liệu khác sẻ nằm từng tab tươn ứng vs 1 phụ lục anh ạ
Nhìn qua bài 1 là tôi biết chỉ đáp ứng được 1 công việc là nhập liệu, còn lại 1 đống đi sau nhưng bạn không đề cập.
Nói chung, Excel có thể làm được nhiều thứ kể cả xuất cái sheet mẫu Biên bản thiết kế trong Excel ra File Word. Vì vậy, tôi mới nêu đâu cần sử dụng Mail Merge.
 
Upvote 0
Theo mình thì nên lôi cái ListBox1 ra vùng có 3 nút lệnh của bạn & bỏ cái Page4 đi
 
Upvote 0
Nhìn qua bài 1 là tôi biết chỉ đáp ứng được 1 công việc là nhập liệu, còn lại 1 đống đi sau nhưng bạn không đề cập.
Nói chung, Excel có thể làm được nhiều thứ kể cả xuất cái sheet mẫu Biên bản thiết kế trong Excel ra File Word. Vì vậy, tôi mới nêu đâu cần sử dụng Mail Merge.
dạ do em làm từng bước, vướn chỗ nào mới hỏi chứ làm ra nguyên 1 loạt thì khó cho các bác quá ạ... e nghĩ vậy nên vướn đến đâu hỏi đến đó thôi ạ
 
Upvote 0
Theo mình thì nên lôi cái ListBox1 ra vùng có 3 nút lệnh của bạn & bỏ cái Page4 đi
à, tên dự án nó dài lắm bạn ơi nên mình để riêng ra 1 page va 1 listbox riêng vậy cho dễ quản lý.... nếu đc bạn thêm code vào listbox1 khj ta kích chọn vào 1 tên công trình thì nó tự đọng nhảy sang tab chung.. k thì mình tự chọn cũng đc
 
Upvote 0
dạ do em làm từng bước, vướn chỗ nào mới hỏi chứ làm ra nguyên 1 loạt thì khó cho các bác quá ạ... e nghĩ vậy nên vướn đến đâu hỏi đến đó thôi ạ
Bạn nên nêu lên hết các vấn đề với ý định cần làm, và nêu cái trước mắt cần làm để các thành viên hiểu mà góp ý cho bạn định hướng đi đúng, sau đó mới giải quyết từng vấn đề.
- Bạn chỉ hỏi cái Form, làm xong cái Form mới hỏi tiếp cái khác thì coi như cái Form làm giúp sẽ bị phá sản.
- Không nên để Listbox riêng làm gì, tất cả dữ liệu ở sheet theo dõi nó sẽ hiện lên Form khi chọn 1 dòng trong Listbox, Tên xã, huyện, tên dự án nên nằm trong ComboBox để chọn hay tìm cho dễ.
 
Upvote 0
Bạn nên nêu lên hết các vấn đề với ý định cần làm, và nêu cái trước mắt cần làm để các thành viên hiểu mà góp ý cho bạn định hướng đi đúng, sau đó mới giải quyết từng vấn đề.
- Bạn chỉ hỏi cái Form, làm xong cái Form mới hỏi tiếp cái khác thì coi như cái Form làm giúp sẽ bị phá sản.
- Không nên để Listbox riêng làm gì, tất cả dữ liệu ở sheet theo dõi nó sẽ hiện lên Form khi chọn 1 dòng trong Listbox, Tên xã, huyện, tên dự án nên nằm trong ComboBox để chọn hay tìm cho dễ.
dạ do nhu cầu em khj nhập xong dữ liệu zô đúng vị trí, thì mail sang word chứ k có tổng hợp gì cả... Mỗi 1 hàng dữ liệu là 1 công trình... qua mail bên word thì chọn cái công trình đó. Còn hay hơn nữa thì xuất ra 1 sheet mới chỉ chứa dòng 5 và nội dung của ctrinh mình chọn ( cái này em đang tìm hiểu trên diễn đàn)
- Do đặc thù cái này nó nằm theo tên dự án chứ k liên quan đến xã, huyện... mà cái tên dự án nó dài lắm anh nên em nghĩ nên đặt riêng ra 1 listbox ạ.. có bạn Hoang2013 tham gia góp ý kiến e post file bạn ấy sửa... a xem cho ý kiến ạ
 

File đính kèm

  • tao form hsttnt.xls
    132.5 KB · Đọc: 11
Upvote 0
Bạn nên nêu lên hết các vấn đề với ý định cần làm, và nêu cái trước mắt cần làm để các thành viên hiểu mà góp ý cho bạn định hướng đi đúng, sau đó mới giải quyết từng vấn đề.
- Bạn chỉ hỏi cái Form, làm xong cái Form mới hỏi tiếp cái khác thì coi như cái Form làm giúp sẽ bị phá sản.
- Không nên để Listbox riêng làm gì, tất cả dữ liệu ở sheet theo dõi nó sẽ hiện lên Form khi chọn 1 dòng trong Listbox, Tên xã, huyện, tên dự án nên nằm trong ComboBox để chọn hay tìm cho dễ.
nếu có thể, a cho em xjn nick facebook mình trao đổi rõ luôn đ ck anh
 
Upvote 0
Bạn vận hành & thử bổ sung tiếp xem sao
(Mình sẽ tháo file bài trên sau 120 fút)
 

File đính kèm

  • Form.rar
    42.7 KB · Đọc: 23
Upvote 0
1, khi tich vào sửa, nó tự nhiên mất mấy cột như địa điểm, quyết định số vạy bạn?
2, nó báo không chọn dòng tiêu đề ý sao mình k hiểu,,, và bị debug
3, bị sao mà nó nhảy lung không như mình sắp đặt lúc nhập liệu bạn nhỉ?
4, bạn có thể node 1 số chỗ bạn làm thêm mục đích để làm j đc k? mình đọc code k hiểu lắm
Tựu chung bạn chả nêu vấn đề nào trong 4 vấn đề trên 1 cách cụ thể cả.
Bạn tích vô đâu? Các TextBox ư; chúng nào có cột nào mà mất?
Bạn chọn dòng tiêu đề của CSDL để làm gì? Có mà khùng mới sửa nội dung các tiêu đề của CSDL
Bạn sắp sao nó vẫn vậy; Coi lại các TabStop xem sao?
Chỉ diễn dịch những cái bạn chưa hiểu 1 cách thực sự thôi; Code của bạn còn fức tạp gấp mấy lần mình ấy chứ;
Mình vẫn khuyên những người như bạn là viết Code nên tường minh;
Mình cốp nhặt của ai về làm vốn cũng sửa theo đúng thói quen dùng Code của mình.
Với mình thì f ải viết hay sửa sao cho ra như thế này:
PHP:
Private Sub UserForm_Initialize()
  Dim SourceRange As Range
  With Sheet3
     Set SourceRange = .Range(.[A2], .[K2].End(xlToLeft))
  End With
  ComboCreateList Me.txtDVKT, SourceRange
  Application.WindowState = xlMaximized
    Me.Top = 1:                     Me.Left = 1
    Me.Width = Application.Width - 73
    Me.Height = Application.Height - 73
    MyControls = Array(txtTCT, txtPA, txtcdt, txtdccdt, txtDiaDiem, txtDVKT, txtSHD, txtKKPA, _
        txtKKPA, txtKKTC, txtKLPA, txtKLTC, txtNTC, txtQDS, txtSLBD, txtTG, txtNgay, txtTLSD, txtDD1KT)
    Dim iRow As Long
    With Sheets("sheet1")
        iRow = .Range("A65536").End(xlUp).Row
        .Range("A5:CP" & iRow).Name = "ListBoxTongcongtrinh"
        ListBox1.RowSource = "ListBoxTongcongtrinh"
        'Chon dong cuoi cua ListBox '
        ListBox1.ListIndex = ListBox1.ListCount - 1
        Me!txtDiaDiem.Text = .Cells(iRow, "C").Value
        Me!txtQDS.Text = .Cells(iRow, "D").Value
        Me!txtSHD.Text = .Cells(iRow, "E").Value
        Me!txtNgay = DateToTxt(.Cells(iRow, "F").Value)
        Me!txtTLSD.Text = .Cells(iRow, "G").Value
        Me!txtTLBD.Text = .Cells(iRow, "h").Value
        Me!txtSLBD.Value = .Cells(iRow, "i").Value
    End With
End Sub
Mình cho là như thế mới dễ đọc code dù vài hay chục năm sau nữa có gặp lại hắn.
 
Lần chỉnh sửa cuối:
Upvote 0
Tựu chung bạn chả nêu vấn đề nào trong 4 vấn đề trên 1 cách cụ thể cả.
Bạn tích vô đâu? Các TextBox ư; chúng nào có cột nào mà mất?
Bạn chọn dòng tiêu đề của CSDL để làm gì? Có mà khùng mới sửa nội dung các tiêu đề của CSDL
Bạn sắp sao nó vẫn vậy; Coi lại các TabStop xem sao?
Chỉ diễn dịch những cái bạn chưa hiểu 1 cách thực sự thôi; Code của bạn còn fức tạp gấp mấy lần mình ấy chứ;
Mình vẫn khuyên những người như bạn là viết Code nên tường minh;
Mình cốp nhặt của ai về làm vốn cũng sửa theo đúng thói quen dùng Code của mình.
Với mình thì f ải viết hay sửa sao cho ra như thế này:
Mình cho là như thế mới dễ đọc code dù vài hay chục năm sau nữa có gặp lại hắn.
mình gửi lại bạn file này mình làm cũng gần gần đc
 

File đính kèm

  • QL Đất.xls
    201 KB · Đọc: 19
Upvote 0
Tiếc là mình không thể mở được Form trong file để xem!
 
Upvote 0
Web KT
Back
Top Bottom