Tạo ListView Control trong VBA

Liên hệ QC

tohoangdung

Thành viên chính thức
Tham gia
16/5/09
Bài viết
50
Được thích
5
Giới tính
Nam
Userform của mình hiện tại như sau:
1605451206988.png
Mình muốn phần dưới hiện ListView giống như hình sau:
EXCEL WORD POWERPOINT VBA USERFORM LIST VIEW CONTROL WITH AUTO-FIT COLUMN.png
Và mình muốn các thông tin CSDL được lưu trong PostgreSQL và kết nối đến nó, nhờ mọi người hỗ trợ ạ.
Xin cảm ơn rất nhiều!
 
Đương nhiên là vậy, còn khi nhập vào lại CSDL thì dùng hàm Cdbl thôi. VD: Cdbl("123,123,456")
Mình kg biết lập trình, bạn làm giúp mình luôn nhé.
Cái ListView mình muốn làm cái tiêu đề cột kiểu giống như hình mẫu, có thể điều chỉnh được độ rộng của các cột.
 
Nên sử dụng List Box, nếu dùng ListView có thể bị lỗi Font trong sử dụng tiếng Việt có dấu.
Đã nhờ mọi người trợ giúp thì trong File không nên cài Password.
à, em quên, password khi mở file là Acc123
password trong vba là todung
 

File đính kèm

  • Inventory_Report.V1.0.0.xlsm
    4.6 MB · Đọc: 32
Bạn muốn ListView của bạn hiển thị nội dung của sheet nào? Cột nào cần được hiển thị? Đừng có nói là hiển thị tất cả à nha!
Em muốn ListView hiện các thông tin trong sheet DATAENTRY như:
- LOT NO (Cột G);
- Số lượng xuất (cột F);
- Ngày sản xuất (Cột H);
- Hạn sử dụng (lấy thông tin cột H trong sheet DATAENTRY cộng với thông tin tại cột H trong sheet LIST (thời hạn lưu kho từng mã), cộng với thời hạn được gia hạn thêm của các cột từ AV đến BE trong sheet DATAENTRY);
- Số Rol (cột J);
- Số Meters (cột K);
- Số ID pallet (cột L);
- NW (cột M);
- GW (cột N);
- Lot 2 (Cột O);
- LCTN là vị trí trên kệ kho hàng (Cột I).
 
Em muốn ListView hiện các thông tin trong sheet DATAENTRY như:
- LOT NO (Cột G);
- Số lượng xuất (cột F);
- Ngày sản xuất (Cột H);
- Hạn sử dụng (lấy thông tin cột H trong sheet DATAENTRY cộng với thông tin tại cột H trong sheet LIST (thời hạn lưu kho từng mã), cộng với thời hạn được gia hạn thêm của các cột từ AV đến BE trong sheet DATAENTRY);
- Số Rol (cột J);
- Số Meters (cột K);
- Số ID pallet (cột L);
- NW (cột M);
- GW (cột N);
- Lot 2 (Cột O);
- LCTN là vị trí trên kệ kho hàng (Cột I).
Do tôi xài Windows 7 và Excel 2010 32bit, nên tôi giúp bạn trên nền tảng này thôi còn những thứ khác tôi không biết.
Và tôi chỉ làm 1 phần trên sheet DATAENTRY và chỉ hướng dẫn cách để tạo dữ liệu trên Listview, còn mấy thứ khác bạn tự làm.

Mã:
Private Sub HelloListView()
    Dim c As Byte
    Dim lsvItem As ListItem
    Dim shtDATA As Worksheet
    Dim arrCols, arrTit, arrData
    Dim e As Long, r As Long, u As Long
    Set shtDATA = Sheets("DATAENTRY")
    e = shtDATA.Range("A" & shtDATA.Rows.Count).End(xlUp).Row
    arrTit = shtDATA.Range("F9:O9").Value
    arrData = shtDATA.Range("F10:O" & e).Value
    arrCols = Array(0, 2, 1, 3, 3, 5, 6, 7, 8, 9, 10, 4)
    u = UBound(arrData)
    With ListView1
        .ColumnHeaders.Clear: .ListItems.Clear
        For c = 1 To 11
            If c = 4 Then
                .ColumnHeaders.Add , , "Expiry date", 90
            Else
                .ColumnHeaders.Add , , arrTit(1, arrCols(c)), 90
            End If
        Next
        Dim strItem As String
        For r = 1 To u
            Set lsvItem = .ListItems.Add(, , arrData(r, 2))
            For c = 2 To 11
                Select Case c
                Case 6, 8, 9
                    lsvItem.SubItems(c - 1) = Format(arrData(r, arrCols(c)), "#,##0")
                Case 4
                    lsvItem.SubItems(c - 1) = "Do ban tính toán"
                Case Else
                    lsvItem.SubItems(c - 1) = arrData(r, arrCols(c))
                End Select
            Next
        Next
    End With
End Sub
1605580043183.png
 

File đính kèm

  • GPE.xlsm
    161.6 KB · Đọc: 60
Web KT
Back
Top Bottom