Delete dòng có điều kiện (1 người xem)

Liên hệ QC

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

trantuonganh2008

Thành viên thường trực
Tham gia
8/11/08
Bài viết
305
Được thích
53
Mình có bảng công nợ số liệu rất là nhiều nên mình muốn làm đơn giản chút, nhờ các anh chị chỉ giáo. Sheet có rất nhiều khách hàng nhưng mình chỉ gửi một vài thôi. Vì mỗi tháng tạo mới một lần nên mình cần làm những công việc sau: 1. Trong tháng hầu như lúc nào cũng có việc điều chỉnh giá cả (tăng hoặc giảm giá). MÌnh muốn khi ngày nào tăng giá thì chỉ cần insert sheet đầu (có tô màu) thì các sheet còn lại cũng insert 1 dòng tương tự như vậy. Nhưng thêm điều kiện nữa là chỉ insert những sheet nào có cùng một khu vực thôi (có nghĩa là những khách hàng nào chỉ tăng hoặc giảm giá thôi) - cái này nhờ các anh chị chỉ cách khống chế chứ liệt kê thì hơi bị nhiều & rối nữa. 2. Sau khi hết tháng thì phải tạo lại bảng mới, mình muốn những dòng thay đổi giá trong tháng cũ mất hết chỉ chừa dòng thay đổi giá lần cuối cùng trong tháng cũ và tự động nhảy lên dòng đầu tiên của tháng mới (có tô màu) như trong file đính kèm. Cám ơn nhiều!
 

File đính kèm

Lần chỉnh sửa cuối:
Có cao thủ nào ra tay giúp mình làm bài này với.
 
Lần chỉnh sửa cuối:
Khó hiểu quá đi mất!

"MÌnh muốn khi ngày nào tăng giá thì chỉ cần insert sheet đầu (có tô màu) thì các sheet còn lại cũng insert 1 dòng tương tự như vậy."

Bạn hãy gọi tên sheet đầu này đi, các trang tính đều có màu dòng này hoặc dòng kia, chứ đâu chỉ có 1 cái duy nhất đượic tô màu đâu;

(*) Hình như file của bạn có virus thì phải; Hãy đưa file khác không có H1N1 lên đi!

Thân ái
 
Chào Chanh TQ@, Chẳng hạn sheet đầu la LTHANH. Mình muốn viết code sao cho những dòng 13 biến mất và dòng 38 sẽ thay thế dòng 13 cho phần bảng công nợ của tháng sau tức là tháng 11. Tức là nếu như giá không đổi trong tháng 10 kể từ ngày 25/10 thì dòng giảm giá này sẽ nằm ngang với "tháng 11" kế tiếp. Hay là như vậy, bạn chỉ mình cách viết code delete dòng nào có từ "Giảm giá" rồi giữ nguyên dòng có từ "giảm giá" cuối cùng tự động cuộn nó lên thay thế dòng có từ "giảm giá" đầu tiên. Vậy nhé! Thân!
 
Lần chỉnh sửa cuối:
Mình muốn viết code sao cho những dòng từ 13 biến mất và dòng 38 sẽ thay thế dòng 13 cho phần bảng công nợ của tháng sau tức là tháng 11. Tức là nếu như giá không đổi trong tháng 10 kể từ ngày 25/10 thì dòng giảm giá này sẽ nằm ngang với "tháng 11" kế tiếp.
Hay là như vậy, bạn chỉ mình cách viết code delete dòng nào có từ "Giảm giá" rồi giữ nguyên dòng có từ "giảm giá" cuối cùng tự động cuộn nó lên thay thế dòng có từ. Vậy nhé! Thân!
Macro sau sẽ tìm tử "Giam gia" trong cột 'A';
Sau đó sẽ xóa các dòng chứa trị ngày tháng ( trị Date) cho đến khi gặp trị không phải kiểu ngày tháng;
Cụ thể trong trang tính đầu tiên sẽ xóa từ dòng 37 đến dòng 14
(Vì trong thí dụ của bạn không có 2 từ 'Giam gia' như bạn viết nên macro có nội dung như dưới đây;
Nếu muốn macro để xóa các dòng giữa 2 từ 'Giam gia' cuối & giần cuối thì sẽ viết macro khác cho bạn; Hãy mhâm nhi với macro này trước đi vậy!

PHP:
Option Explicit
Sub DeleteRows()
 Dim Rng As Range, sRng As Range, dRng As Range
 Dim ggR As Long, jJ As Long
 
 Set Rng = Range([A1], [A65500].End(xlUp))
 ggR = Rng.Find("Giam gia", , xlFormulas, xlWhole).Row - 1
 For jJ = ggR To 1 Step -1
   If IsDate(Cells(jJ, "A").Value) Then
      If dRng Is Nothing Then
         Set dRng = Cells(jJ, "A")
      Else
         Set dRng = Union(dRng, Cells(jJ, "A"))
      End If
   Else
      Exit For
   End If
 Next jJ
 dRng.EntireRow.Delete
End Sub
 
Xin cám ơn bạn nhiều. Ý mình không phải xóa những dòng như bạn làm mà mình chỉ muốn xóa cụ thể sheet đầu là những dòng sau đây với những điều kiện sau: 1. Ở sheet LTHANH, mình muốn chỉ xóa dòng 38 (dòng này có thể là "tăng" hoặc "giảm giá"), sau đó dòng 38 sẽ nhảy lên thế dòng 13 & từ "giảm giá" hoặc "tăng giá" sẽ thành chữ "tháng kế tiếp (ở đây là tháng 11) vì bảng công nợ sau khi tạo mới phải sửa tháng lại. Rồi sau đó dòng 13 sẽ nhảy lên trên dòng đầu bảng (ở đây là dòng 5) & dòng 5 hiện tại (dòng có từ "tháng 9" sẽ biến mất). Tóm lại, mình muốn bạn viết code delete dòng dựa theo ngày nào có chèn dòng "tăng" hoặc "giảm giá". Và qua tháng mới, khi chạy code thì chỉ giữ lại 2 dòng giá cuối cùng thôi (tức là 2 lần thay đổi giá cuối cùng trong tháng, vì trong 1 tháng có thể có nhiều lần tăng hoặc giảm giá), cách chèn dòng định dạng như trong sheet mình đã gửi cho bạn. Có gì thắc mắc liên lạc với mình nhé. Rgds,
 
Lần chỉnh sửa cuối:
Càng nói càng mù mờ.

Hay lần cuối cùng thế này đi:

Bạn làm 1 file khác có 2 trang tính; 1 trang là hiện tại, 1 trang là tương lại bạn muốn nó sẽ như thế nào;
Đưa lên xem sao!

(Nếu ai hiểu được xin phiên dịch tiếng Việt ra tiếng Việt giùm nha,
xin cảm ơn!)

 
Thôi, vì bảng mình hơi bị phức tạp, bạn chỉ cần đưa dòng thay đổi giá lần cuối cùng trong tháng cũ rồi cập nhật dòng này vào dòng đầu trong tháng mới là được rồi. Vì như bạn thấy sang tháng 11 lại có sự điều chỉnh giá nữa đó. Bạn làm sao cho áp dụng tất cả các sheet luôn nha, nếu ko thì từng sheet cũng đuợc. Cho mình hỏi thêm chút nữa, bạn viết code dùm mình insert dòng nào có ngày thay đổi giá luôn nha. Tức là ngày nào có sự điều chỉnh giá của những khách hàng nào thì khi chạy code sẽ tự động chèn dòng bắt đầu từ ngày đó cho những khách đó. Việc này áp dụng cho tất cả các khách hàng (nhưng chỉ những KH nào có sự điều chỉnh thì mới chèn dòng) luôn nha. Nhờ bạn giải thích code dùm luôn vì mình chỉ mới chập chững vào nghề viết code thôi, mình muốn như vậy là để biết cách khống chế cho từng khách hàng thôi. Bạn xem file tháng 11 nhé. Chào thân ái!
 

File đính kèm

Lần chỉnh sửa cuối:
Chết, mình quên gỡ pass, pass là "happy"
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom