Oanh Thơ đọc mà chưa hiểu lắm,bạn có thể giải thích cụ thể hoặc cho ví dụ minh họa được không ạ?Mong các bác chỉ dẫn e code VBA auto filter cột ORDER NUMBER.
Em muốn làm code khi ấn vào nút button thì auto filter ra được số đơn hàng tiếp theo ạ (lưu ý số đơn hàng không chắc đã liên tiếp). Em cảm ơn ạ !!!
ít ra bạn cũng phải nêu thông tin là lấy đơn hàng theo kiểu gì thì mới biết cách mà làm chư.file của bạn thì bạn biết người khác nhìn vào đấy ai mà có thời gian tìm quy luật để lấy đơn hàng giúp bạn mệt thật.Mong các bác chỉ dẫn e code VBA auto filter cột ORDER NUMBER.
Em muốn làm code khi ấn vào nút button thì auto filter ra được số đơn hàng tiếp theo ạ (lưu ý số đơn hàng không chắc đã liên tiếp). Em cảm ơn ạ !!!
điều kiện autofilter của bạn là gì, nếu ORDER NUMBER giống thì lấy qua 1 sheets khác hay sao?Mong các bác chỉ dẫn e code VBA auto filter cột ORDER NUMBER.
Em muốn làm code khi ấn vào nút button thì auto filter ra được số đơn hàng tiếp theo ạ (lưu ý số đơn hàng không chắc đã liên tiếp). Em cảm ơn ạ !!!
dạ e chỉ cần lọc lần lượt các đơn hàng để in ra thôi ạ. trong cột ORDERNUMBER vd: đang filter là 2652986 và đơn hàng tiếp theo là 2652987 thì chỉ cần code VBA click vào nút button là nó tự fillter sang 2652987 ấy ạ.Oanh Thơ đọc mà chưa hiểu lắm,bạn có thể giải thích cụ thể hoặc cho ví dụ minh họa được không ạ?
điều kiện filter của e chỉ là next sang order tiếp theo thôi ạđiều kiện autofilter của bạn là gì, nếu ORDER NUMBER giống thì lấy qua 1 sheets khác hay sao?
dạ e chỉ cần next sang đơn hàng tiếp theo để e print ra thôi ạ. Chứ dùng filter của excel mà cứ bấm chọn từng đơn hàng rồi in ra lâu quá.ít ra bạn cũng phải nêu thông tin là lấy đơn hàng theo kiểu gì thì mới biết cách mà làm chư.file của bạn thì bạn biết người khác nhìn vào đấy ai mà có thời gian tìm quy luật để lấy đơn hàng giúp bạn mệt thật.
vậy sao bạn không nhờ là bạn chỉ cần bấm 1 nút nó sẽ lọc ra từng oder 1 rồi in luôn cần gì làm thủ công cho nó mệtdạ e chỉ cần lọc lần lượt các đơn hàng để in ra thôi ạ. trong cột ORDERNUMBER vd: đang filter là 2652986 và đơn hàng tiếp theo là 2652987 thì chỉ cần code VBA click vào nút button là nó tự fillter sang 2652987 ấy ạ.
Bài đã được tự động gộp:
điều kiện filter của e chỉ là next sang order tiếp theo thôi ạ
Bài đã được tự động gộp:
dạ e chỉ cần next sang đơn hàng tiếp theo để e print ra thôi ạ. Chứ dùng filter của excel mà cứ bấm chọn từng đơn hàng rồi in ra lâu quá.
dạ e chỉ cần lọc lần lượt các đơn hàng để in ra thôi ạ. trong cột ORDERNUMBER vd: đang filter là 2652986 và đơn hàng tiếp theo là 2652987 thì chỉ cần code VBA click vào nút button là nó tự fillter sang 2652987 ấy ạ.
Bài đã được tự động gộp:
điều kiện filter của e chỉ là next sang order tiếp theo thôi ạ
Bài đã được tự động gộp:
dạ e chỉ cần next sang đơn hàng tiếp theo để e print ra thôi ạ. Chứ dùng filter của excel mà cứ bấm chọn từng đơn hàng rồi in ra lâu quá.
Chạy thử đoạn code sau xem saoMong các bác chỉ dẫn e code VBA auto filter cột ORDER NUMBER.
Em muốn làm code khi ấn vào nút button thì auto filter ra được số đơn hàng tiếp theo ạ (lưu ý số đơn hàng không chắc đã liên tiếp). Em cảm ơn ạ !!!
Option Explicit
Public OrderNumber
Public Nm As Long
Sub Sort_AutoFilter()
Dim SArr As Variant
Dim DArr
Dim i As Long, j, k
Sheet1.UsedRange.AutoFilter
If Nm = 0 Then
With CreateObject("Scripting.Dictionary")
SArr = Sheet1.Range("c4", Sheet1.Range("c1000000").End(xlUp))
For i = 1 To UBound(SArr)
.Item(SArr(i, 1)) = ""
If j < SArr(i, 1) Then j = SArr(i, 1)
If i = 1 Then
k = SArr(i, 1)
Else
If k > SArr(i, 1) Then k = SArr(i, 1)
End If
Next i
ReDim DArr(k To j)
ReDim OrderNumber(1 To j - k + 1)
For Each j In .keys
DArr(j) = j
Next j
j = 0
For i = LBound(DArr) To UBound(DArr)
If DArr(i) <> "" Then
j = j + 1
OrderNumber(j) = DArr(i)
End If
Next i
ReDim Preserve OrderNumber(1 To j)
End With
End If
Nm = Nm + 1
If Nm = UBound(OrderNumber) Then MsgBox "Het du lieu"
With Sheet1
.Range("a3", .Range("s1000000").End(xlUp)).AutoFilter
.Range("a3", .Range("s1000000").End(xlUp)).AutoFilter Field:=3, Criteria1:=OrderNumber(Nm)
End With
End Sub
Chạy thử đoạn code sau xem sao
Bạn có thể tạo 1 nút bấm, gán code vào rồi chạy
Mã:Option Explicit Public OrderNumber Public Nm As Long Sub Sort_AutoFilter() Dim SArr As Variant Dim DArr Dim i As Long, j, k Sheet1.UsedRange.AutoFilter If Nm = 0 Then With CreateObject("Scripting.Dictionary") SArr = Sheet1.Range("c4", Sheet1.Range("c1000000").End(xlUp)) For i = 1 To UBound(SArr) .Item(SArr(i, 1)) = "" If j < SArr(i, 1) Then j = SArr(i, 1) If i = 1 Then k = SArr(i, 1) Else If k > SArr(i, 1) Then k = SArr(i, 1) End If Next i ReDim DArr(k To j) ReDim OrderNumber(1 To j - k + 1) For Each j In .keys DArr(j) = j Next j j = 0 For i = LBound(DArr) To UBound(DArr) If DArr(i) <> "" Then j = j + 1 OrderNumber(j) = DArr(i) End If Next i ReDim Preserve OrderNumber(1 To j) End With End If Nm = Nm + 1 If Nm = UBound(OrderNumber) Then MsgBox "Het du lieu" With Sheet1 .Range("a3", .Range("s1000000").End(xlUp)).AutoFilter .Range("a3", .Range("s1000000").End(xlUp)).AutoFilter Field:=3, Criteria1:=OrderNumber(Nm) End With End Sub
Nhờ bạn xem giúp.vd: đang filter là 2652986 và đơn hàng tiếp theo là 2652987
Không biết máy bạn thế nào, máy tôi chạy bình thườngXin chào CHAOQUAY,
Oanh Thơ chạy thử code của bạn, bấm các lần tiếp theo vẫn lọc ở "26529831"
Mong muốn là:
Nhờ bạn xem giúp.
Không biết máy bạn thế nào, máy tôi chạy bình thường
Bạn xem thử clip dưới đây xem sao
Option Explicit
Public OrderNumber
Public Nm As Long