Giúp sắp xếp dữ liệu theo dòng !!! (2 người xem)

Liên hệ QC

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

nguyenlam1105

Thành viên mới
Tham gia
26/6/08
Bài viết
3
Được thích
0
Xin các bạn chỉ hướng dẫn giúp mình cách sắp xếp dữ liệu lại theo dòng như bảng HD báo cáo đính kèm. Tiêu chí là sắp xếp thứ tự theo số hóa đơn (VD dòng đầu tiên: AC07T - 1952335 - 10/05/2009 : Nguyễn Thị Sang, tương ứng với 1 dòng (hoặc nhiều dòng) record bên dưới của nv này).

từ nhỏ đến lớn (hoặc ngược lại). Dữ liệu tương ứng theo báo cáo của từng nhân viên chi tiết bên dưới ứng với số hóa đơn AC07T - 1952335 đó.

Mong nhận được sự giúp đỡ của các bạn. Xin cám ơn lắm ạ
 

File đính kèm

Chưa rõ bạn cần gì nữa? Hình như bạn đã xếp theo trật tự tăng dần rồi mà, phải không?
 
bạn Hyen17 ơi, mình đã cắt dữ liệu bớt để cho vừa sized post lên dd, thật ra dài lắm, bạn để ý từ dòng 185 là số hóa đơn phải được sắp lại chèn lên phần giữa phía trên vì số Hóa đơn 1952356 là số nhỏ hơn những hóa đơn gần phần cuối phía trên. và còn nhiều dữ liệu phía dưới nữa nên ko thể cắt dán bằng tay được.
Vì trong file có nhiều người quản lý (màu xanh dương), nhân viên trực thuộc là màu xanh lá cây, record tương ứng với nhân viên là dòng màu trắng. Giờ mình muốn sắp xếp trộn với nhau lại ko phân biệt người quản lý và nhân viên dưới cấp nữa, chỉ sắp theo số thứ tự hóa đơn (nhỏ đến lớn, hoặc ngược lại). Mong được giúp đỡ
 
Do bạn thích trộn mà hầu như mình tốn gấp 4 lần thời gian luôn; này nha:
(*) Tìm các ô trộn trên trang tính
(Tự nhiên cắt cớ gì 3 ô trống cách dòng cuối thêm 4 dòng lại đem trộn lại hông biết nữa? Làm mất chổ này đứt > 2 tiếng đồ hồ - Thật tệ hại để làm đẹp trang tính)
(*) tím cách bỏ trộn chúng
(*) . . . .
(*) Trộn lại sau xử lý (Hoàn nguyên đất thổ cư sau khai thác bõxit!)

bạn Hyen17 ơi, mình đã cắt dữ liệu bớt để cho vừa sized post lên dd, thật ra dài lắm, bạn để ý từ dòng 185 là số hóa đơn phải được sắp lại chèn lên phần giữa phía trên vì số Hóa đơn 1952356 là số nhỏ hơn những hóa đơn gần phần cuối phía trên. và còn nhiều dữ liệu phía dưới nữa nên ko thể cắt dán bằng tay được.
Bạn đưa lên quá nhiều các records làm loãng trọng tâm; Đáng ra bạn chỉ cần đưa lên khoảng 30 dòng lộn xôn nhứt lên là được rồi!

Vì trong file có nhiều người quản lý (màu xanh dương), nhân viên trực thuộc là màu xanh lá cây, record tương ứng với nhân viên là dòng màu trắng. Giờ mình muốn sắp xếp trộn với nhau lại ko phân biệt người quản lý và nhân viên dưới cấp nữa, chỉ sắp theo số thứ tự hóa đơn (nhỏ đến lớn, hoặc ngược lại). Mong được giúp đỡ
Xem trong file đính kèm nha; Có gì chưa vừa lòng thì phát biểu xem sao?

Chú í quan trọng trước khi dùng macro:

Bạn nhứt thiết phải thêm bằng tay 1 cột trước cột 'A'
Điều này chỉ thực hiện 1 lần duy nhứt, nhưng phải đúng; Macro trước khi kết thúc sẽ ần cột 'A' vừa tạo này đi cho đẹp mắt, vừa lòng . . .
Thật ra thêm bằng macro cũng được nhưng với cột 'A' không có trộn cơ; Còn vầy thì áp dụng mấy câu lệnh macro, thì chúng cũng bị tẩu hỏa nhập ma & trộn với nhau, như bạn đã trộn ô luôn!


PHP:
Option Explicit
Sub SapXepHD()
 Dim eRw As Long:                               Dim StrC As String
 Dim Rng As Range, Clls As Range
  
 [A5].Value = "Hdon"
 eRw = [F65500].End(xlUp).Row - 2
 Application.ScreenUpdating = False
 For Each Rng In Range([B6], Cells(eRw, "B"))
   With Rng.Interior
      If .ColorIndex = 37 Then
         Rng.Resize(, 3).Select:                Selection.UnMerge
         Set Clls = Rng.Offset(1)
         Rng.Offset(, -1).Value = Left(Clls.Value, 5) & Mid(Clls.Value, 9, 7) & "."
         
      ElseIf .ColorIndex = 34 Then
         Rng.Resize(, 3).Select:                Selection.UnMerge
         StrC = Left(Rng.Value, 5) & Mid(Rng.Value, 9, 7) & "0"
         Rng.Offset(, -1).Value = StrC
      Else
         Rng.Offset(, -1).Value = StrC & Right("0" & Rng.Value, 2)
      End If
   End With
 Next Rng
 Range("A5:k" & eRw).Select
 Selection.Sort Key1:=[A6], Order1:=xlAscending, Key2:=[B6] _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1
 For Each Rng In Range([B6], Cells(eRw, "B"))
   With Rng.Interior
      If .ColorIndex > 33 Then
         Rng.Resize(, 3).Select:                Selection.Merge
      End If
   End With
 Next Rng
 [A1].EntireColumn.Hidden = True
End Sub
Lạy trời, lạy đất! cho con đừng gặp các ô trộn này nữa; Con xin cúng mỗi ông 2 đầu heo quay cấp kỳ!

Thay vì câu lệhh
eRw = [F65500].End(xlUp).Row - 2
Ta sửa lại là:
eRw = [G65500].End(xlUp).Row - 2

& trong câu
Mã:
Selection.Sort Key1:=[A6], Order1:=xlAscending, Key2:=[B6] _
              , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1

có sự dư thừa không cần thiết.

Ta chỉ nên viết là:


Selection.Sort Key1:=[A6], Order1:=xlAscending, Header:=xlGuess
hay
Selection
.Sort Key1:=[A6], Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1

Xin cảm ơn!
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

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

Back
Top Bottom