Hỏi Về Code Trong USer Form

Liên hệ QC

khamha

Không có việc gì khó...
Tham gia
4/6/10
Bài viết
662
Được thích
844
Nghề nghiệp
CNVC Laos
Mình Gặp Vấn Đề Trong Khi Tạo USer Form Nhờ Các Bạn Giúp Như Sau:
1. Mình Có Tạo Một USer Form Có Kích Thước Bằng Một Trang A4 ,Nhưng Khi Form Hiện Lên Màn Hình Để Nhập Dữ Liệu Thì Chỉ Có Khoảng
Hai Phần Ba, Nên Đoạn Cuối Không Thể Nhập Dữ Liệu Được,Không Biết Có Cách Nào Để Di Chuyển Form Lên Xuống Không ?
2. Có Cách Nào Để In Được USer Form Không?
Các Bạn Cố Gắng Giúp Mình Với. Cảm Ơn Các Bạn Nhiều...
 
1/Bạn dùng Multi_Pages và chia cái Form của bạn thành vài Page. Như vậy Forn sẽ gọn gàng hơn và di chuyển dễ dàng hơn.
2/Trên form thêm 1 nút và viết lệnh để thử yêu cầu của bạn

Mã:
Private Sub CommandButton1_Click()
Me.PrintForm
End Sub
 
Upvote 0
Nhờ Các Bạn Giúp Mình Mấy Cái Code Trong USer Form Với:
1. Code Tự Động Điền Số Thứ Tự ( Khi Ta Mở Form Mới Thì Nó Sẽ Tự Động Điền Sổ Thứ Tự Nối Tiếp Trong Bảng Dữ Liệu )
2. Code Chỉ Cho Sửa Ở Những Ô Cho Phép.
3. Code Quy Định Những Ô Chỉ Cho Phép Nhập Số.
Cảm Ơn Các Bạn Nhiều...
 
Upvote 0
Bạn nên làm 1 cái Form của mình, nếu gặp vướng mắc sẽ hoàn chỉnh sau. Hiện nay, mình thấy yêu cầu của bạn nó có một số vấn đề không hợp lý lắm.Mình tham gia như sau:
-Form có 4 chế độ: Xem-Sửa-Thêm mới-Xóa
Khi xem thì khóa tất cả các ô chỉ để xem thôi.
Khi sửa sẽ sửa chứng từ đang hiện trên Form. Tất cả các ô đếu sửa được vì đều tiềm ẩn nhập sai.
Khi thêm mới sẽ hiện form trắng và số thứ tự sẽ bằng Max số TT+1 hoặc bằng số thứ tự dòng trắng cuối cùng - số dòng tiêu đề. Ta nên viết 1 đoạn code riêng để Reset số thứ tự vì ngoài việc thêm mới thì khi xóa 1 dòng thì số TT sẽ thay đổi hàng loạt
 
Upvote 0
Chào Các Bạn,Mình Có Một Cái User Form Muốn Nhờ Các Bạn Sửa Giúp ( Dùng Để Lọc Dữ Liệu ) 1. Sửa Để Nó Lọc Toàn Bộ Các Cột Trong Sheet Data 2. Trong Thanh Trượt Của UserForm Dùng Để Tìm Đối Tượng Để Lọc Chỉ Cho Hiện Thị Mỗi Loại Một Cái, Ví Dụ: Trong Bảng Data Có Số 2 Tất Cả 5 Số Thì Chỉ Cho Hiện 1 Số,Nhưng Khi Lọc Thì Nó Sẽ Tự Động Tất Cả 5 Số Vào Bảng “ Loc ” Các Bạn Cố Gắng Giúp Mình Với,Thank
 

File đính kèm

  • LocDuLieuBang USerForm.7z
    26.7 KB · Đọc: 147
Upvote 0
Bạn lưu ý, đã lọc thì phải chủ động nạp DS chứ không đặt rowsource được.
 

File đính kèm

  • LocDuLieuBang USerForm.rar
    38.3 KB · Đọc: 215
Upvote 0
Vụ Lọc Dữ Liệu Này Gay Thật Làm Mãi Mà Chả Được Như Ý !!!
Bạn sealand Ơi Hình Như Bạn Chưa Sửa Cho Mình Về Vấn Đề Lọc Tất Cả Các Cột Trong Sheet "Data" Bạn Làn Ơn Giúp Mình Luôn Đi,Cảm Ơn Bạn Nhiều.
 
Upvote 0
Bạn diễn giải khó hiểu thật, mình cứ làm lại xem sao
 

File đính kèm

  • LocDuLieuBang USerForm.rar
    40.2 KB · Đọc: 144
Upvote 0
Chào Bạn sealand , Mình Đã down Về Chạy Thử Rất Tốt Tuy Rằng Lọc Hơi CHậm ,Nhưng Cũng Phải Công Nhận Là Bạn Nắm Vững
Về Excel Thật ( Mình Tưởng Là Phải Bó Tay Rồi )Mình Rất Cảm Ơn Bạn.
Mình Còn Một Vấn Đề Nữa Nhờ Bạn Giúp Sửa Lại Code Để Cho Nó Lọc Dữ Liệu Bắt Đầu Từ Cột "B" Của Sheet "Data" Vì Lý Do Như Sau:
1. khi Mình Nhập Dữ Liệu Từ USer Form Vào Bảng Tính "Data" Thì Nó Tự Động Điền Số Thứ Tự Cho Cột "A" Nên Bắt Buộc Phải Chuyển
Cột "Mã Khách Hàng "Sang Cột "B" Vì Vậy Nên Không Thể Lọc Được ( Nó Chuyển Sang Lọc Số Thứ Tự )
2. Mình Cũng Đã Thử Chỉnh Lại Rồi ( Mày Mò Làm Cho Quen Ấy Mà ) Nhưng Mà Càng Sửa Thì Càng Sai Và Cuối Cùng Lại Phải Nhờ Bạn Ra Tay
Giúp Mình Với...Thank
 
Upvote 0
Bạn thử lại xem nào.

Bạn lưu ý chỉ sửa như sau ở 1 câu lệnh:

.Range("A3:H" & Sheet12.[a65536].End(xlUp).Row).AutoFilter _
Field:=2, Criteria1:=Trim(CongViecDuocChon.List(lItem, 1))

Lọc hơi chậm chắc còn vấn đề gì nữa đấy chứ đây là đoạn code lọc của bác SA_DQ mà mình rất ưng đấy. Nó chộp cả mảng chứ không phải từng dòng nên khá nhanh.
Bạn thấy không, diễn đạt sao cho anh em hiểu cũng rất quan trọng. Nhiều anh em khác không hiểu bạn thôi chứ không phải không quan tâm bài của bạn.
 

File đính kèm

  • LocDuLieuBang USerForm.rar
    40.9 KB · Đọc: 202
Lần chỉnh sửa cuối:
Upvote 0
Chào Bạn,Mình Đã Sửa Như Bạn Hướng Dẫn,Nó Chạy Rất Tốt Và Lọc Cột "B" Của Sheet "Data" ,Nhưng Nó Lại Phát Sinh Thêm Một Lỗi Là: Danh Sách Thu Gọn
Số Xuất Hiện Trên Form Lọc Nó Vẫn Thu Gọn Ở Cột "A" Sheet "Data" ( Bạn Làm Ơn Đọc Lại Ý Của Mình Đã Viết Ở Bài # 5 ) Lại Một Lần Nữa Nhờ Bạn Sửa Lại Để
Nó Thu Gọn Danh Sách Ở Cột "B" Sheet "Data" .Thank
 
Upvote 0
Có lẽ bạn sửa nhầm rồi, bạn xem mình sửa nhé
 

File đính kèm

  • LocDuLieuBang USerForm.rar
    41.2 KB · Đọc: 57
Upvote 0
Bạn Ơi Cho Mình Hỏi Là Tại Sao Lúc Mình Đưa User Form Vào Bảng Lọc Dữ Liệu ( Sử Dung Để Nhập Dữ Liệu Vào Bảng “Data”)
Thì Nó Báo Lỗi,Theo Mình Kiểm Tra Thì Thấy Rằng Nó Bị Lỗi Như Sau:
1. Cái User Form Mình Đưa Vào Nó Dùng Để Nhập Dữ Liệu Vào Bảng Tính Có Tên Là: HS(Data)
2. Cái Form Lọc Dữ Liệu Thì Lại Lọc Dữ Liệu Từ Bảng Tính Có Tên Là: Sheet12(Data)
3. Mình Đã Thử Đổi Tên Sheet Trong Code Của Form Lọc Dữ Liệu Từ: Sheet12Thành HS ,Nhưng Mà Nó Vẫn Báo Lỗi.
Mình Đưa Code Lên Nhờ Bạn Kiểm Tra Và Sửa Lại Cho Mình Với,Cảm Ơn Bạn.
PHP:
    Private Sub Chon_Click()
    Dim lItem As Long, Rng As Range
      Sheet3.[A7:H65536].ClearContents
        On Error Resume Next
          For lItem = 0 To CongViecDuocChon.ListCount - 1
             If CongViecDuocChon.Selected(lItem) = True Then
              With Sheet12
              .Range("A3:H" & Sheet12.[a65536].End(xlUp).Row).AutoFilter _
              Field:=2, Criteria1:=Trim(CongViecDuocChon.List(lItem, 1))
             Set Rng = .AutoFilter.Range.Offset(1, 0).Resize(.AutoFilter.Range.Rows. _
                     Count - 1).SpecialCells(xlCellTypeVisible)
            Rng.Copy Destination:=Sheet3.[b65536].End(xlUp).Offset(1)
          End With
        CongViecDuocChon.Selected(lItem) = False
      End If
    Next
  Sheet12.Range("A3:H" & Sheet12.[a65536].End(xlUp).Row).AutoFilter
  For Each Rng In Sheet3.Range("A7:A" & Sheet3.[b65536].End(xlUp).Row)
  Rng.Value = Rng.Row - 6
  Next
  Unload Me
  End Sub
  Private Sub Cancel_Click()
  Unload DanhMucCV
  End Sub
  Private Sub UserForm_Initialize()
  Dsach
  End Sub
  Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
      If CloseMode = 0 Then Cancel = True
  End Sub
  Sub Dsach()
  Dim Clls As Range, mg(), i
  With Range(Sheet12.[A4], Sheet12.[a65536].End(xlUp))
  For Each Clls In .Cells
  If WorksheetFunction.CountIf(Range(Sheet12.[A5], Clls), Clls) = 1 Then
  CongViecDuocChon.AddItem Clls.Value, i
  CongViecDuocChon.List(i, 1) = Clls.Offset(, 1).Value
  i = i + 1
  End If
  Next
  End With
  End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn để ý trong VBA: Sheet12(Data)

Phần màu đỏ là CodeName của Sheet (Phần này vào VBA mới đổi được)
Phần màu xanh là tên của Sheet (Phần này người dùng có thể thay đổi)

Mình hay dùng CodeName cho ổn định vì Phần Name có thể thay đổi dẫn đến vỡ Code.
 
Upvote 0
Ý Của Bạn Là Mình Chỉ Cần Sửa Đoạn Code Trên Như Sau: Những Chỗ Có Chữ Sheet12 Sửa Lại Thành HS
 
Upvote 0
Đổi theo phần bên ngoài dấu ngoăc của sheet Data (Nếu phần đó là HS thì đúng rồi)
 
Upvote 0
Chào Bạn,Mình Đã Sửa Cái Code Theo Bạn Hướng Dẫn Và Đã Ghép Lại Được Với Nhau,Hiện Nó Chạy Rất Tốt,Sau Khi Sử Dụng Cái Bảng Tính Đấy mình Lại Thấy Nó Vẫn Chưa Đáp Ứng Được Công Việc Của Mình Vì Lý Do Sau Đây:
1. Khi Tổng Kết Cuối Tháng Mình Sẽ Phải Lọc Dữ Liệu Từ Bảng “Data” Như Sau:
1.1. Nếu Tổng Kết Tổng Hợp Thì Chỉ Cần Lọc Dữ Liệu Tại Cột “B” Của Sheet “Data” Là Được.
1.2. Nếu Tổng Kết Chi Tiết Theo Từng Trường Hợp Thì Cần Phải Lọc Thêm Dữ Liệu Ở Cột: F, G Và H Của sheet “Data”
* Khi Lọc Dữ Liệu Để Tổng Kết Chi Tiết Thì Sẽ Lọc Tuần Tự Như Sau:
1. Bước Một: Chọn Dữ Liệu Cần Lọc Tại Cột “B” ,Của Sheet”Data” ,Ví Dụ: Chọn Tháng 6/2010 = 201006
2. Bước Hai: Chọn Dữ Liệu Cần Lọc Tại Cột “F” ,Của Sheet”Data” ,Ví Dụ: Chọn Là A.
3. Bước Ba: Chọn Dữ Liệu Cần Lọc Tại Cột “G” , Của Sheet”Data” ,Ví Dụ: Chọn Là Y.
4. Bước Bốn: Chọn Dữ Liệu Cần Lọc Tại Cột “F” , Của Sheet”Data” ,Ví Dụ: Chọn Là N.
5. Bước Năm: Bấm OK.
6. Kết Quả Lọc Hiện Lên Tại Sheet “Lọc”Sẽ Là:
+ Cột “C” Sẽ Hiện Lên Dữ Liệu Của Tháng 6/2010 ,Với Điều Kiện Các Cột: G,H,I ,Có Các Dữ Liệu: A,Y,N.
+ Cột “G” Sẽ Hiện Lên Dữ Liệu Là: A ,Với Điều Kiện Các Cột: H,I ,Có Các Dữ Liệu: Y,N.
+ Cột “H” Sẽ Hiện Lên Dữ Liệu Là: Y ,Với Điều Kiện Cột: I ,Có Các Dữ Liệu: N.
+ Cột “I” Sẽ Hiện Lên Dữ Liệu Là: N.
2. Mình Đã Sửa Cái User Form Để Lọc Dữ Liệu Thành 4 Ô Và Đưa Lên Nhờ Bạn Thiết Kế Giúp Mình Để Nó Có Thể Lọc Được Theo Điều Kiện Như Trên “ Bạn Làm Ơn Sửa Nó Trong File Mình Đưa Lên Vì Nó Có Tên Giống Nhau Cùng Cái UserForm Nhập Liệu Của Mình”
Cảm Ơn Bạn Rất Nhiều.
 

File đính kèm

  • Loc 4 DieuKien.7z
    29.5 KB · Đọc: 48
Lần chỉnh sửa cuối:
Upvote 0
Trời ạ, cái anh bạn này. Bạn thay đổi sheet Data kiểu gì rồi mà bạn không gửi file thì sao mà hiểu. Bạn nói chọn ngày trên cột B trong khi cột B là tên Khách hàng. Cột E,F,G là cột số lượng, đơn giá và thành tiền thì lọc cái chi? Bạn xem lại hương dẫn mọi người hiểu ý bạn đã mới hy vọng làm đúng ý bạn được.
Còn việc loc thì chắc là OK thôi vì có nhiều phương án mà.
 
Upvote 0
Bạn sealand Thân Mến,Vấn Đề Mình Không Gửi Cái File Đấy Lên Cùng Nếu Nói Ra Chắc Bạn Không Tin, Chỗ Mình Ở Mạng Nó Chậm Kinh Khủng Lúc Dùng Phần Mềm Hỗ Trợ
download Cũng chỉ Nên Được 18k Thôi,Nên Khi Tải File Nên Toàn Bị Đứt Nửa Chừng ( Bạn Có Tin Là Mình down Windows 7 Về Mà Mất 48 Tiếng Không ) Không Tin Bạn Thử
Kiểm Tra Các Bài Của Mình Toàn Phải Gửi Lên Lúc 2,3 Giờ Sáng Vì Lúc Đấy Nó Mới Khoẻ Lên Được Tầm 20k.
Mình Đã Gửi Lên Được Rồi,Bạn Làm Ơn Giúp Mình Nha,Thank
 
Upvote 0
Không hiểu sao nội dung bảng thì không sao nhưng tiêu đề không hiển thị được mà toàn ô vuông bạn ạ.
 
Upvote 0
Web KT
Back
Top Bottom