Làm sao để tạo ComboBox lấy dữ liệu từ sheet khác? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Ricky1990

Thành viên mới
Tham gia
3/10/07
Bài viết
3
Được thích
0
Xin chào các anh chị,

Em có một cửa hàng nhỏ, đang muốn quản lý thu chi bằng file Excel. Em tìm trên mạng thấy có bác chia sẻ file quản lý nhập, xuất, tồn hàng hóa có tính năng tự động lấy dữ liệu từ một sheet khác rất phù hợp với nhu cầu của em nên em đã sửa file Excel đó thành file quản lý thu chi (file em đính kèm).

Ví dụ đây là Sheet 1 chứa danh sách các khoản chi:
attachment.php

Và đây là Sheet 2 để kê khai chi tiết các khoản chi từng ngày. Ở cột MÃ, khi em click vào ô bất kỳ nó sẽ tự lấy dữ liệu từ Sheet 1 ra để hiển thị, em chọn cái nào thì nó chèn cái nội dung đó vào.
attachment.php

Bây giờ em tạo thêm Sheet 3, liệt kê các tài khoản:

attachment.php

Bây giờ trên Sheet 2, em muốn làm thêm cái chức năng tương tự ở cột TÀI KHOẢN CHI, để khi click vào nó cũng tự động lấy dữ liệu từ Sheet 3 hiện ra danh sách các ngân hàng cho em chọn, em chọn cái nào thì nó chèn dữ liệu vào:

attachment.php

Em đã nghiên cứu rất nhiều về cách tạo combobox trong Excel nhưng không làm được như file Excel mẫu. Các anh các chị giúp em với. Nếu có sai mục hi vọng BQT thông cảm và di chuyển giúp em sang mục phù hợp ạ.

Em xin chân thành cảm ơn!

File Excel của em: View attachment QL_THU_CHI.xls
 

File đính kèm

  • 4.jpg
    4.jpg
    23 KB · Đọc: 69
  • 3.jpg
    3.jpg
    29.5 KB · Đọc: 66
  • 2.jpg
    2.jpg
    32.3 KB · Đọc: 67
  • 1.jpg
    1.jpg
    23.7 KB · Đọc: 67
nè của bạn, bạn có thể thao tác thoải mái bằng phím mà không cần chuột
khi vào form, để thoát bạn có thể dùng các phím phải trái, esc, tab để thoát
để chọn thì có thể dùng phím enter hoặc double lick
 

File đính kèm

Lần chỉnh sửa cuối:
nè của bạn, bạn có thể thao tác thoải mái bằng phím mà không cần chuột
khi vào form, để thoát bạn có thể dùng các phím phải trái, esc, tab để thoát
để chọn thì có thể dùng phím enter hoặc double lick
Làm sao hay vậy bạn. Chỉ mình được không
 
nè của bạn, bạn có thể thao tác thoải mái bằng phím mà không cần chuột
khi vào form, để thoát bạn có thể dùng các phím phải trái, esc, tab để thoát
để chọn thì có thể dùng phím enter hoặc double lick

Em ngàn lần đội ơn bác. Bác có thể hướng dẫn em để em chủ động tạo thêm các cột khác nữa phục vụ công việc được không ạ? Nếu có video ghi lại màn hình thao tác của bác thì tốt ạ.
 
Bác có thể hướng dẫn em để em chủ động tạo thêm các cột khác nữa phục vụ công việc được không ạ? Nếu có video ghi lại màn hình thao tác của bác thì tốt ạ.

trong module 31
Mã:
Public Sub FilterKHO()
Dim str As String, r, col As Long, n As Long, dArr As Variant, c As Byte
str = UserForm1.tbx_Search.Text
If Len(str) Then

        [COLOR=#ff0000]With Sheets("TK")
            arrKHO = .Range(.[A3], .[B60000].End(3)).Value
        End With[/COLOR]
...................................
End Sub

cái này là nguô2n của listbox, khi bạn thay đổi nguôi thì chỉnh lại chổ này
====
trong sự kiện worksheet_selectionchange
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo thoat
Dim MH As Boolean
MH = Application.EnableEvents
Application.EnableEvents = False
If Target.Row > 2 Then
    If Target.Column = 3 Then
        Call thaydoi1
        Call MaHH1
    Else
        Call Hide1
    End If
    [COLOR=#ff0000]If Target.Column = 9 Then UserForm1.Show [/COLOR]
End If
thoat: Application.EnableEvents = MH
End Sub
muốn nó xuâ1t hiê5n ở cột nào thì làm giống dòng màu đỏ
 
trong module 31
Mã:
Public Sub FilterKHO()
Dim str As String, r, col As Long, n As Long, dArr As Variant, c As Byte
str = UserForm1.tbx_Search.Text
If Len(str) Then

        [COLOR=#ff0000]With Sheets("TK")
            arrKHO = .Range(.[A3], .[B60000].End(3)).Value
        End With[/COLOR]
...................................
End Sub

cái này là nguô2n của listbox, khi bạn thay đổi nguôi thì chỉnh lại chổ này
====
trong sự kiện worksheet_selectionchange
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo thoat
Dim MH As Boolean
MH = Application.EnableEvents
Application.EnableEvents = False
If Target.Row > 2 Then
    If Target.Column = 3 Then
        Call thaydoi1
        Call MaHH1
    Else
        Call Hide1
    End If
    [COLOR=#ff0000]If Target.Column = 9 Then UserForm1.Show [/COLOR]
End If
thoat: Application.EnableEvents = MH
End Sub
muốn nó xuâ1t hiê5n ở cột nào thì làm giống dòng màu đỏ

Bác ơi cái form em làm theo như bác hướng dẫn rất OK nhưng bây giờ bị vấn đề là cái form chọn tài khoản nó càng ngày càng bị trôi xuống phía dưới. Đến khoảng dòng 47 thì nó bị trôi mất khỏi màn hình. Thế là từ dòng 48 trở đi không nhìn thấy form đâu nữa. Trong khi công việc của em đòi hỏi nhập dữ liệu nhiều hơn nên nhờ bác fix cho em vị trí của form được ko ạ?
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    26.7 KB · Đọc: 39
Bác ơi cái form em làm theo như bác hướng dẫn rất OK nhưng bây giờ bị vấn đề là cái form chọn tài khoản nó càng ngày càng bị trôi xuống phía dưới. Đến khoảng dòng 47 thì nó bị trôi mất khỏi màn hình. Thế là từ dòng 48 trở đi không nhìn thấy form đâu nữa. Trong khi công việc của em đòi hỏi nhập dữ liệu nhiều hơn nên nhờ bác fix cho em vị trí của form được ko ạ?

Mã:
Private Sub UserForm_Initialize()
Dim arr As Variant
With UserForm1
    [COLOR=#0000ff]Me.Left = ActiveCell.Left + ActiveCell.Width - ActiveWindow.VisibleRange.Left
    Me.Top = ActiveCell.Top - ActiveWindow.VisibleRange.Top + 110[/COLOR]
End With
    With Me.tbx_Search
        .Text = "" 'update all
        .SetFocus
    End With
        With Sheets("TK")
            arr = .Range(.[A3], .[B60000].End(3)).Value
        End With
Me.ListBox1.List = arr
End Sub
tôi nghĩ chắc là nó ở đoạn code này
bạn tăng giảm cái số 110, nếu nó không xuất hiện ngay cell đang chọn
 
Web KT

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

Back
Top Bottom