Top doanh nghiệp đã đăng ký cho nhân viên
Bạn sẽ học được gì?
Khoá học này sẽ có:
Video
8h 53m giờ học
Article
0 bài viết chuyên môn
Material
1 tài liệu đính kèm
Exam questions
0 đề thi ghi nhớ kiến thức
Nội dung khoá học
7 Chương . 43 bài giảng . 8h 53m giờ học
Mở rộng tất cả các phầnMô tả khoá học
Tiếp nối các khóa học EXG01, VBAG01, VBAG02 - nhằm giúp học viên có thể sử dụng linh hoạt và thực tế, ứng dụng nhanh hơn vào công việc, Gitiho tiếp tục cho ra mắt khóa học VBAG03 - Chuyên đề ứng dụng VBA qua code mẫu. Với khóa học này, học viên sẽ rút ngắn thời gian học VBA dựa trên code mẫu có sẵn, Biết cách ứng dụng VBA trong công việc thực tế dựa trên các chuyên đề thực hành; Kết hợp giữa các kiến thức: Excel, VBA, kiến thức chuyên ngành để vận dụng vào thực tế; Tối đa hóa việc thực hành VBA với hệ thống bài tập và bài kiểm tra chi tiết, đầy đủ.
Đánh giá của học viên
5/5
1 Đánh giá và nhận xét
100 %
0 %
0 %
0 %
0 %
11:03 03/06/2022
Giảng viên:
4.8 điểm đánh giá
1003 đánh giá
347,606 học viên
101 khóa học
Học viên cũng mua
Hỏi đáp khóa học
Thảo luận về bài học
102 thảo luận
Đặng Thị Thuỳ
Đặng Thị Thuỳ
Thầy xem giúp em ạ
Bùi Thanh Liêm
Câu hỏi: trong userform có thể tạo ô tìm kiếm nhanh sort 1 lúc nhiều mã hàng hóa không? Nếu có xin hãy viết doạn code ví dụ
xin cảm ơn
Trợ Giảng Gitiho
Dạ vâng Gitiho xin gửi thông tin đến Anh/Chị ạ:
Anh/Chị có thể tạo ô tìm kiếm nhanh trong UserForm của VBA và thực hiện việc sắp xếp nhiều mã hàng hóa một lúc. Dưới đây là một đoạn mã VBA minh họa:
Option Explicit
Private Sub UserForm_Initialize()
' Khởi tạo UserForm
' (Anh/Chị có thể thêm dữ liệu từ nguồn dữ liệu của mình vào ListBox)
ListBox1.AddItem "Mã Hàng Hóa 1"
ListBox1.AddItem "Mã Hàng Hóa 2"
ListBox1.AddItem "Mã Hàng Hóa 3"
' Thêm các mã hàng hóa khác tương ứng
' Thiết lập giá trị mặc định cho TextBox tìm kiếm
TextBoxSearch.Value = ""
End Sub
Private Sub TextBoxSearch_Change()
' Xử lý sự kiện khi giá trị trong TextBox tìm kiếm thay đổi
Dim searchText As String
Dim i As Integer
searchText = UCase(TextBoxSearch.Value) ' Chuyển đổi về chữ hoa để tìm kiếm không phân biệt chữ hoa/chữ thường
' Xóa toàn bộ mục trong ListBox
ListBox1.Clear
' Hiển thị lại các mục thỏa mãn điều kiện tìm kiếm
For i = 0 To ListBox1.ListCount - 1
If InStr(1, UCase(ListBox1.List(i)), searchText) > 0 Then
ListBox1.AddItem ListBox1.List(i)
End If
Next i
End Sub
Private Sub CommandButtonSort_Click()
' Xử lý sự kiện khi nút sắp xếp được nhấn
' (Anh/Chị có thể thêm mã lệnh sắp xếp dựa trên các mã hàng hóa trong ListBox)
' Ví dụ: sắp xếp theo bảng chữ cái
ListBox1.List = SortArray(ListBox1.List)
End Sub
Function SortArray(arr() As Variant) As Variant
' Hàm sắp xếp một mảng
Dim i As Long, j As Long
Dim temp As Variant
For i = LBound(arr) To UBound(arr) - 1
For j = i + 1 To UBound(arr)
If arr(i) > arr(j) Then
' Hoán đổi giá trị nếu cần thiết
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
End If
Next j
Next i
SortArray = arr
End Function
Trong mã trên:
- `UserForm_Initialize`: Khởi tạo UserForm và thêm một số mã hàng hóa vào ListBox.
- `TextBoxSearch_Change`: Xử lý sự kiện khi giá trị trong TextBox tìm kiếm thay đổi. Nó sẽ lọc ListBox dựa trên giá trị tìm kiếm.
- `CommandButtonSort_Click`: Xử lý sự kiện khi nút sắp xếp được nhấn. Anh/Chị có thể thay đổi logic sắp xếp tùy thuộc vào yêu cầu của Anh/Chị .
- `SortArray`: Hàm sắp xếp một mảng (được sử dụng để sắp xếp các mã hàng hóa trong ListBox).
Lê Văn Chánh
Thầy ơi cho e hỏi: làm sao để dữ liệu đưa từ userform xuống thành dạng number thầy - sao e đưa dữ liệu : " thành tiền = đơn giá * số lượng " thì xuống bảng nó hiểu là dạng text phải cover lại thì mới được.
Dương Mạnh Quân [Chuyên gia]
để chuyển dữ liệu từ userform xuống sheet ở dạng number thì bạn dùng lệnh sau:
Sheets("tên sheet").Range("vùng ô nhận").Value = CLng(Me.TextBox1.Value)
Trong đó CLng có nghĩa là Convert to Long => chuyển giá trị về dạng số
Lê Văn Chánh
Thây ơi cho e hỏi - e bị báo lỗi application như hình bên dươi -thầy xem giúp e với. e đã chọn danh sách rồi rạo commonbox rồi mà vẫn bị lỗi trên
https://imgur.com/X5AYOOY
Trợ Giảng Gitiho
Dạ vâng Gitiho xin giải đáp thắc mắc của anh/chị đoạn mã như sau ạ:
Private Sub UserForm_Initialize()
' Phạm vi danh sách
Dim DongDau_DS_HangHoa As Long
Dim DongCuoi_DS_HangHoa As Long
DongDau_DS_HangHoa = 5
DongCuoi_DS_HangHoa = Sheets("ThietLap_DanhSach").Range("C" & Rows.Count).End(xlUp).Row
Me.cb_nhomhang.List = Sheets("ThietLap_DanhSach").Range("C" & DongDau_DS_HangHoa & ":C" & DongCuoi_DS_HangHoa).Value
End Sub
Chú ý là cần có ".List" ở Me.cb_nhomhang.List ạ!
Khi ta thêm ".List" vào cuối của câu lệnh "Me.cb_nhomhang" để gán dữ liệu vào combobox. Điều này cho phép anh/chị gán một mảng dữ liệu (Sheets("ThietLap_DanhSach").Range("C" & DongDau_DS_HangHoa & ":C" & DongCuoi_DS_HangHoa).Value) vào combobox "cb_nhomhang".
Với sửa đổi này, hàm UserForm_Initialize sẽ hoạt động đúng và gán dữ liệu từ phạm vi "C" từ hàng "DongDau_DS_HangHoa" đến hàng "DongCuoi_DS_HangHoa" vào combobox
nguyễn hữu trọng
Chào thầy, sau khi em viết lập trình theo hướng dẫn của thầy thì nó xuất hiện đoạn hội thoại như thế này? Em đã lên mạng nghiên cứu nhưng không thành công? Nhờ thầy hỗ trợ với ạ, em cảm ơn thầy nhiều.
https://gitiho.com/discussion/image-d..." style="max-width:100%;margin:0.5rem 0;">
Dương Mạnh Quân [Chuyên gia]
Lỗi này là bạn đang gọi 1 đối tượng chưa được khai báo.
Bạn có thể kiểm tra lại tên của combobox xem đã viết đúng tên chưa nhé.
Giá ưu đãi chỉ còn 1 ngày
499,000đ
899,000đĐăng ký cho doanh nghiệp
Giúp nhân viên của bạn truy cập không giới hạn 500+ khoá học, mọi lúc, mọi nơi