Đánh mã tự hiện list danh sách trên bảng Data có sẵn

Liên hệ QC

mitdacdtd

Thành viên hoạt động
Tham gia
14/10/17
Bài viết
150
Được thích
23
Giới tính
Nam
Dear Anh/Em GPE.
Hiện mình có file phiếu thu chi đính kèm, nhờ anh em giúp cho Công thức khi đánh số phiếu chi, tự hiện list các hóa đơn được chi trong đó.
Thanks anh em
 

File đính kèm

  • List.xlsx
    2 MB · Đọc: 20
Dear Anh/Em GPE.
Hiện mình có file phiếu thu chi đính kèm, nhờ anh em giúp cho Công thức khi đánh số phiếu chi, tự hiện list các hóa đơn được chi trong đó.
Cảm ơn anh em
Bạn xem đúng không nhé.Mình dùng VBA.
Mã:
Sub laydulieu()
    Dim arr, i As Long, lr As Long, a As Long, arr1, dk As String, dks As String
    With Sheets("Data")
         lr = .Range("A" & Rows.Count).End(xlUp).Row
         If lr < 11 Then Exit Sub
         arr = .Range("A11:H" & lr).Value
         ReDim arr1(1 To UBound(arr, 1), 1 To 6)
   End With
   With Sheet2
        dk = .Range("G4").Value & "#" & .Range("G5").Value
        For i = 1 To UBound(arr, 1)
            dks = arr(i, 2) & "#" & arr(i, 6)
            If dk = dks Then
               a = a + 1
               arr1(a, 1) = a
               arr1(a, 2) = arr(i, 3)
               arr1(a, 3) = arr(i, 5)
               arr1(a, 6) = arr(i, 8)
            End If
       Next i
       .Range("A13:H27").ClearContents
      If a Then .Range("A13").Resize(a, 6).Value = arr1
   End With
End Sub
 

File đính kèm

  • List.xlsm
    2 MB · Đọc: 13
Bạn xem đúng không nhé.Mình dùng VBA.
Mã:
Sub laydulieu()
    Dim arr, i As Long, lr As Long, a As Long, arr1, dk As String, dks As String
    With Sheets("Data")
         lr = .Range("A" & Rows.Count).End(xlUp).Row
         If lr < 11 Then Exit Sub
         arr = .Range("A11:H" & lr).Value
         ReDim arr1(1 To UBound(arr, 1), 1 To 6)
   End With
   With Sheet2
        dk = .Range("G4").Value & "#" & .Range("G5").Value
        For i = 1 To UBound(arr, 1)
            dks = arr(i, 2) & "#" & arr(i, 6)
            If dk = dks Then
               a = a + 1
               arr1(a, 1) = a
               arr1(a, 2) = arr(i, 3)
               arr1(a, 3) = arr(i, 5)
               arr1(a, 6) = arr(i, 8)
            End If
       Next i
       .Range("A13:H27").ClearContents
      If a Then .Range("A13").Resize(a, 6).Value = arr1
   End With
End Sub
Tất cả đúng ý mình ngoại trừ việc số hợp đồng cho full các số "0" đằng đầu được không bạn, Cảm ơn nhiều nhiều nghen
 
Tất cả đúng ý mình ngoại trừ việc số hợp đồng cho full các số "0" đằng đầu được không bạn, Cảm ơn nhiều nhiều nghen
Bị lưu vết dữ liệu nữa bạn ạ, khi mình chuyển số HĐ ở G5 thì dữ liệu bị lưu vết. Ngoài ra mình nhờ thêm bạn nếu đánh phiếu chi sẽ tự hiện list ở G5 là PC... còn nếu đánh phiếu thu sẽ tự hiện list ở G5 là PT...
Nếu số HĐ ở cột B dài hơn khung đang để mặc định thì sẽ tự dài thêm ra không đè vào phần chữ ký và thành tiền.
214048
 
Bị lưu vết dữ liệu nữa bạn ạ, khi mình chuyển số HĐ ở G5 thì dữ liệu bị lưu vết. Ngoài ra mình nhờ thêm bạn nếu đánh phiếu chi sẽ tự hiện list ở G5 là PC... còn nếu đánh phiếu thu sẽ tự hiện list ở G5 là PT...
Nếu số HĐ ở cột B dài hơn khung đang để mặc định thì sẽ tự dài thêm ra không đè vào phần chữ ký và thành tiền.
View attachment 214048
Đây bạn xem nhé.
Mã:
Sub laydulieu()
    Application.ScreenUpdating = False
    Dim arr, i As Long, lr As Long, a As Long, arr1, dk As String, dks As String
    With Sheets("Data")
         lr = .Range("A" & Rows.Count).End(xlUp).Row
         If lr < 11 Then Exit Sub
         arr = .Range("A11:H" & lr).Value
         ReDim arr1(1 To UBound(arr, 1), 1 To 6)
   End With
   With Sheet2
        dk = .Range("G4").Value & "#" & .Range("G5").Value
        For i = 1 To UBound(arr, 1)
            dks = arr(i, 2) & "#" & arr(i, 6)
            If dk = dks Then
               a = a + 1
               arr1(a, 1) = a
               arr1(a, 2) = arr(i, 3)
               arr1(a, 3) = arr(i, 5)
               arr1(a, 6) = arr(i, 8)
            End If
       Next i
       .Rows("13:252").EntireRow.Hidden = False
       .Range("A13:H252").ClearContents
      If a Then .Range("A13").Resize(a, 6).Value = arr1
        .Rows(a + 13 & ":252").EntireRow.Hidden = True
   End With
   Application.ScreenUpdating = True
End Sub
 

File đính kèm

  • List.xlsm
    1.8 MB · Đọc: 13
Đây bạn xem nhé.
Mã:
Sub laydulieu()
    Application.ScreenUpdating = False
    Dim arr, i As Long, lr As Long, a As Long, arr1, dk As String, dks As String
    With Sheets("Data")
         lr = .Range("A" & Rows.Count).End(xlUp).Row
         If lr < 11 Then Exit Sub
         arr = .Range("A11:H" & lr).Value
         ReDim arr1(1 To UBound(arr, 1), 1 To 6)
   End With
   With Sheet2
        dk = .Range("G4").Value & "#" & .Range("G5").Value
        For i = 1 To UBound(arr, 1)
            dks = arr(i, 2) & "#" & arr(i, 6)
            If dk = dks Then
               a = a + 1
               arr1(a, 1) = a
               arr1(a, 2) = arr(i, 3)
               arr1(a, 3) = arr(i, 5)
               arr1(a, 6) = arr(i, 8)
            End If
       Next i
       .Rows("13:252").EntireRow.Hidden = False
       .Range("A13:H252").ClearContents
      If a Then .Range("A13").Resize(a, 6).Value = arr1
        .Rows(a + 13 & ":252").EntireRow.Hidden = True
   End With
   Application.ScreenUpdating = True
End Sub
Cảm ơn pro nhiều nhé. Chúc mọi điều tốt lành đến với bạn.
 
Cảm ơn pro nhiều nhé. Chúc mọi điều tốt lành đến với bạn.
Mình có phát sinh thêm 2 cột " VAT và Tổng" được lấy từ sheet Data, bạn giúp mình nốt nhé. Nếu giúp mình có nút in tự động luôn thì đẳng cấp quá. Thanks bạn nhiều.
 

File đính kèm

  • List.xlsm
    2.1 MB · Đọc: 4
Lần chỉnh sửa cuối:
Mình có phát sinh thêm 2 cột " VAT và Tổng" được lấy từ sheet Data, bạn giúp mình nốt nhé. Nếu giúp mình có nút in tự động luôn thì đẳng cấp quá. Cảm ơn bạn nhiều.
Bạn muốn in như thế nào nhỉ.Chọn cái in luôn à.:D.Mà cái VAT với cái tổng bạn làm công thức cho nó nhanh.File của bạn mình mở lên cứ đơ đơ.
 
Bạn muốn in như thế nào nhỉ.Chọn cái in luôn à.:D.Mà cái VAT với cái tổng bạn làm công thức cho nó nhanh.File của bạn mình mở lên cứ đơ đơ.
Đúng rồi bạn ấn nút print (không phải Ctrl + P nữa ) là nó tự in, cái phần VAT nhập tay và tổng nhập tay bên Sheet Data. File mình đơ đơ là mình đang dùng hàm mảng lọc duy nhất để lấy list cho Số phiếu thu/chi đó nên rất nặng (Công thức đó trong sheet ẩn)
Bài đã được tự động gộp:

Bạn muốn in như thế nào nhỉ.Chọn cái in luôn à.:D.Mà cái VAT với cái tổng bạn làm công thức cho nó nhanh.File của bạn mình mở lên cứ đơ đơ.
Nút in giống thế này nè bạn. :D
 

File đính kèm

  • In tự động.jpg
    In tự động.jpg
    20.6 KB · Đọc: 4
Đúng rồi bạn ấn nút print (không phải Ctrl + P nữa ) là nó tự in, cái phần VAT nhập tay và tổng nhập tay bên Sheet Data. File mình đơ đơ là mình đang dùng hàm mảng lọc duy nhất để lấy list cho Số phiếu thu/chi đó nên rất nặng (Công thức đó trong sheet ẩn)
Bài đã được tự động gộp:


Nút in giống thế này nè bạn. :D
Vậy thay bằng VBA cho nhanh.Hàm mảng làm gì cho mệt.Cái nút thì bạn có thể dùng code recode macro là được mà.Cái đấy có yêu cầu gì đâu.:D.Bạn xóa công thức đi gửi file qua mình viết luôn code phần lis cho.:D.Vì máy mình không mở được File.
 
Vậy thay bằng VBA cho nhanh.Hàm mảng làm gì cho mệt.Cái nút thì bạn có thể dùng code recode macro là được mà.Cái đấy có yêu cầu gì đâu.:D.Bạn xóa công thức đi gửi file qua mình viết luôn code phần lis cho.:D.Vì máy mình không mở được File.
Đây nha bạn.
 

File đính kèm

  • List.xlsm
    2.1 MB · Đọc: 4
Web KT
Back
Top Bottom