Kính nhờ giải thích công thức phần liên kết ô Dropdown giữa 2 sheet

Chia sẻ bởi:hands
★★★★★
Quảng cáo

File gốc này mình nhờ 1 bạn GBE làm lâu rồi, giờ dữ liệu thay đổi, mình có nhờ điều chỉnh chỗ này chỗ kia chút.
Giờ final gom lại thì phát sinh cái list tên Khách theo SĐT không hoạt động (nó liên kết với 1 bảng trong sheet Tach KH)
3128

Mình có đính kèm file lên, nhờ anh em GBE xem giúp phải sửa như thế nào với (File cần chỉnh Nho GPE listdropdown)
, còn file gốc về cách nó hoạt động, mình cũng gửi lại file Thong Ke KhachVip1 để mọi người xem lại cách nó hoạt động.
Mình cần lấy dữ liệu cái bảng ở sheet Tach KH này, bảng này có thể mở rộng tới STT 100 giúp mình.
-Ô J2 có List dropdown bên Sheet Gui Le, chọn SĐT ra tên Khách hàng tương ứng (Khách hàng xếp theo thứ tự ưu tiên theo SL Gửi)
3129
2 năm trước, bạn cũng giúp mình viết code cho vấn đề này của mình nè, giờ mình đổi cty khác làm nên thay đổi cấu trúc hết, k biết sửa ntn, topic cũ lúc đó nè:
www.giaiphapexcel.com/diendan/threads/nh%E1%BB%9D-gi%C3%BAp-%C4%91%E1%BB%A1-l%E1%BB%8Dc-d%E1%BB%AF-li%E1%BB%87u-theo-s%C4%90t-v%C3%A0-ch%C3%A9p-d%E1%BB%AF-li%E1%BB%87u-t%C6%B0%C6%A1ng-%E1%BB%A9ng-qua-sheet-kh%C3%A1c.153011/
Chân thành cảm ơn rất rất nhiều!

Không biết có phải mình hiểu đơn giản quá không
Bạn sửa công thức trong Name SDT như sau:

SDT=OFFSET('Tach KH'!$C$4,0,0,COUNTA('Tach KH'!$C:$C)-1)

Thêm sub tạo danh sách

Option Explicit
Sub XYZ()
  Dim arr(), resDT$(), res(), wb As Workbook, sh As Worksheet, dic As Object
  Dim sRow&, sCol&, j&, i&, r&, k&, ik&, DT$, fDay&, eDay&, tDay

Set sh = ThisWorkbook.Worksheets("Tach KH")
  Set dic = CreateObject("Scripting.Dictionary")
  On Error Resume Next
  fDay = sh.Range("G2").Value
  eDay = sh.Range("H2").Value
  If fDay = Empty Or eDay = Empty Or fDay > eDay Then
    MsgBox ("Dieu kien ngay khong chuan !")
    Exit Sub
  End If
'Gan du lieu vao mang arr
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Set wb = Workbooks.Open(ThisWorkbook.Path & "" & "DuLieu." & sh.Range("F1").Value)
  arr = Range("A10:AS" & Range("E" & Rows.Count).End(xlUp).Row).Value
  wb.Close False
  If Err.Number > 0 Then
    MsgBox ("File du lieu khong ton tai !")
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Exit Sub
  End If
  On Error GoTo 0
  sRow = UBound(arr): sCol = UBound(arr, 2)
'Loc du lieu
  ReDim res(1 To sRow, 1 To 3)
  ReDim resDT(1 To sRow, 1 To 1)
  For i = 1 To sRow
    If TypeName(arr(i, 41)) = "String" Then
      tDay = CLng(Split(arr(i, 41), "/")(0))
    Else
      tDay = Day(arr(i, 41))
    End If
    If tDay >= fDay And tDay <= eDay Then
      r = r + 1
      If i <> r Then
        For j = 1 To sCol
          arr(r, j) = arr(i, j)
        Next j
      End If
      DT = Trim(arr(i, 7))
      If Not dic.exists(DT) Then
        k = k + 1
        dic.Add DT, k
        res(k, 1) = arr(i, 5):        res(k, 3) = 1
        resDT(k, 1) = DT
      Else
        ik = dic.Item(DT)
        res(ik, 3) = res(ik, 3) + 1
      End If
    End If
  Next i
'Gan du lieu vao sheet Data
  With Sheets("Data")
    If .Range("B2").Value <> Empty Then .Range("B2").CurrentRegion.Offset(1).ClearContents
    .Range("D2").Resize(r).NumberFormat = "@"
    .Range("AO2").Resize(r).NumberFormat = "@"
    .Range("A2").Resize(r, sCol) = arr
  End With
'Xoa vung ket qua
  i = sh.Range("B" & Rows.Count).End(xlUp).Row
  If i > 3 Then sh.Range("A4:D" & i).ClearContents
'Gan ket qua
  sh.Range("B4").Resize(k, 3) = res
  sh.Range("C4").Resize(k) = resDT
  sh.Range("B4").Resize(k, 3).Sort Key1:=sh.Range("D4"), Order1:=xlDescending
  sh.Range("A4") = 1
  sh.Range("A4").Resize(k).DataSeries
  Call Add_Datavalidation(dic, resDT, k, i) 'Tao Data validation sheet "Gui Le"
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End Sub

Sub Add_Datavalidation(dic, resDT, ByVal sRow&, ByVal i&)
  dic.RemoveAll
  For i = 1 To sRow
    If Not dic.exists(resDT(i, 1)) Then dic.Add resDT(i, 1), ""
  Next i
  Sheets("Gui Le").Range("J2").Validation.Modify Formula1:=Join(dic.keys, ",")
End Sub

www.giaiphapexcel.com/diendan/threads/k%C3%ADnh-nh%E1%BB%9D-gi%E1%BA%A3i-th%C3%ADch-c%C3%B4ng-th%E1%BB%A9c-ph%E1%BA%A7n-li%C3%AAn-k%E1%BA%BFt-%C3%B4-dropdown-gi%E1%BB%AFa-2-sheet.163900/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 1 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm