Tạo code merge cell trong office 2013 (2 người xem)

  • Thread starter Thread starter uyvu
  • Ngày gửi Ngày gửi

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

uyvu

Thành viên mới
Tham gia
5/10/08
Bài viết
29
Được thích
0
Gởi diễn đàn

Hiện tại mình đang gặp phải vấn đề này, xin diễn đàn giúp
Như trong hình, hằng ngày tôi trích xuất từ phần mềm công ty ra một file thô, sau đó phải merge lại để gởi cho đối tác, nhưng có tới hằng mấy trăm dòng, chữ nhỏ, làm rất tốn thời gian.
Cách làm hiện nay như sau:
-Khi xuất file thô, tôi sort theo 3 cấp độ : cột "ngày bán", cột "chứng từ", cột "số thẻ tín dụng"
-Sau đó tôi sẽ tìm những chứng từ và số thẻ tín dụng trùng nhau, nhưng tiền cà thẻ chỉ có 1 lần còn các lần còn lại bằng 0 --> merge lại
-Tiếp tục cộng cột "SellPrce" theo số chứng từ trên
+ nếu tổng số tiền cột "tiền cà thẻ" bé hơn hoặc bằng cột "SellPrce" --> thì tô màu xanh
+ nếu tổng số tiền cột "tiền cà thẻ" lớn hơn cột "SellPrce" --> thì tô màu đỏ

Untitled.jpg

Xin trân trọng cảm ơn diễn đàn
 

File đính kèm

Lần chỉnh sửa cuối:
Gởi diễn đàn

Hiện tại mình đang gặp phải vấn đề này, xin diễn đàn giúp
Như trong hình, hằng ngày tôi trích xuất từ phần mềm công ty ra một file thô, sau đó phải merge lại để gởi cho đối tác, nhưng có tới hằng mấy trăm dòng, chữ nhỏ, làm rất tốn thời gian.
Cách làm hiện nay như sau:
-Khi xuất file thô, tôi sort theo 3 cấp độ : cột "ngày bán", cột "chứng từ", cột "số thẻ tín dụng"
-Sau đó tôi sẽ tìm những chứng từ và số thẻ tín dụng trùng nhau, nhưng tiền cà thẻ chỉ có 1 lần còn các lần còn lại bằng 0 --> merge lại
-Tiếp tục cộng cột "SellPrce" theo số chứng từ trên
+ nếu tổng số tiền cột "tiền cà thẻ" bé hơn hoặc bằng cột "SellPrce" --> thì tô màu xanh
+ nếu tổng số tiền cột "tiền cà thẻ" lớn hơn cột "SellPrce" --> thì tô màu đỏ
View attachment 127737
Xin trân trọng cảm ơn diễn đàn
Để tí kêu đưa em nó đọc và nhập dữ liệu từ cái hình này ra 1 file, rồi mình làm giúp cho nha.
 
Upvote 0
Mình sơ suất quá. Gởi kèm file như vấn
 
Upvote 0
Sao mình tải file lên không được vậy ta
 
Upvote 0
mình đã thêm file, bạn giúp mình với
Bạn nói sort theo cột ngày, số CT, rồi đến số thẻ nhưng mình xem file thì không phải vậy nên viết tạm code này trước rồi tính tiếp
PHP:
Sub QH()
Application.DisplayAlerts = False
Dim Rng As Range, R As Long
Set Rng = Range([A1], [E65536].End(3))
Rng.Sort [B1], Header:=1
For R = 2 To [E65536].End(3).Row
   If Cells(R, 4) = 0 Then
      Range(Cells(R - 1, 4), Cells(R, 4)).Merge
   End If
Next
Application.DisplayAlerts = True
End Sub
 
Upvote 0
Bạn nói sort theo cột ngày, số CT, rồi đến số thẻ nhưng mình xem file thì không phải vậy nên viết tạm code này trước rồi tính tiếp
PHP:
Sub QH()
Application.DisplayAlerts = False
Dim Rng As Range, R As Long
Set Rng = Range([A1], [E65536].End(3))
Rng.Sort [B1], Header:=1
For R = 2 To [E65536].End(3).Row
   If Cells(R, 4) = 0 Then
      Range(Cells(R - 1, 4), Cells(R, 4)).Merge
   End If
Next
Application.DisplayAlerts = True
End Sub

Trước hết mình vô cùng cảm ơn bạn về đoạn code ở trên, nhưng vẫn còn nhiều trường hợp phát sinh khi làm thực tế, mong bạn giúp mình
 
Upvote 0
um để mình giúp cho. Bạn đợi ít lâu nha.


Untitled.jpg


Mình có gởi bạn 1 file đính kèm có 3 sheet
Sheet1: là file thô lấy từ phần mềm, chưa sửa gì hết
Sheet2: là file mình làm bằng tay
Sheet3: là mình làm bằng code bạn đưa

Theo như hình vẽ là file mình làm bằng code bạn viết có chỉnh sửa chút để đúng với file thực tế (file lần trước cắt bỏ khá nhiều)
code mình áp dụng cho sheet3 là:
Sub QH()
Application.DisplayAlerts = False
Dim Rng As Range, R As Long
Set Rng = Range([A1], [P65536].End(3))
Rng.Sort [G1], Header:=1
For R = 2 To [P65536].End(3).Row
If Cells(R, 15) = 0 Then
Range(Cells(R - 1, 15), Cells(R, 15)).Merge
Range(Cells(R - 1, 15), Cells(R, 15)).Interior.Color = 5296274
End If
Next
Application.DisplayAlerts
Sau khi làm bằng code, có 4 lỗi như hình vẽ, mình xin giải thích 4 lỗi như sau:
Lỗi 1 và 2:
Do đoạn code trên điều kiện chỉ tìm những ô có giá trị bằng 0 của cột "Tiền cà thẻ" rồi sau đó Merge, như vậy là sai, vì phải đủ cả 3 điều kiện thì mới merge:
- Cột "chứng từ" phải trùng nhau
- Cột "số thẻ tín dụng" phải trùng nhau
- Chung 1 số chứng từ, và 1 số thẻ tín dụng, như cột "Tiền cà thẻ" lại chỉ có 1, các giá trị còn lại bằng 0
Lỗi 1: chung "số thẻ tín dụng", nhưng "chứng từ" là 2 số khác nhau --> merge là sai
Lỗi 2: chung "chứng từ", nhưng "số thẻ tín dụng" là 2 số khác nhau --> merge là sai
Lỗi 3:
Trùng cả 2 cột "chứng từ" và cột "số thẻ tín dụng" nhưng tổng của cột "SellPrce" = 8.570.000, bé hơn giá trị của cột "Tiền cà thẻ" = 7.360.000, nên sau khi merge tô màu đỏ, thay vì tô màu xanh như bình thường
Lỗi 4:
Trùng cả 2 cột "chứng từ" và cột "số thẻ tín dụng" nhưng do đoạn code viết là đi lên một ô rồi merge thay vì phải đi xuống một ô mới merge

Bạn có thể cho mình số điện thoại ?, nếu ở HCM, thì hẹn uống cafe (mình mời) gặp trực tiếp mình trình bày để bạn hiểu hơn, bạn viết code cũng chính xác và nhanh hơn (số của mình là 0977.96.4444)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
View attachment 127946


Mình có gởi bạn 1 file đính kèm có 3 sheet
Sheet1: là file thô lấy từ phần mềm, chưa sửa gì hết
Sheet2: là file mình làm bằng tay
Sheet3: là mình làm bằng code bạn đưa

Theo như hình vẽ là file mình làm bằng code bạn viết có chỉnh sửa chút để đúng với file thực tế (file lần trước cắt bỏ khá nhiều)
code mình áp dụng cho sheet3 là:
Sub QH()
Application.DisplayAlerts = False
Dim Rng As Range, R As Long
Set Rng = Range([A1], [P65536].End(3))
Rng.Sort [G1], Header:=1
For R = 2 To [P65536].End(3).Row
If Cells(R, 15) = 0 Then
Range(Cells(R - 1, 15), Cells(R, 15)).Merge
Range(Cells(R - 1, 15), Cells(R, 15)).Interior.Color = 5296274
End If
Next
Application.DisplayAlerts
Sau khi làm bằng code, có 4 lỗi như hình vẽ, mình xin giải thích 4 lỗi như sau:
Lỗi 1 và 2:
Do đoạn code trên điều kiện chỉ tìm những ô có giá trị bằng 0 của cột "Tiền cà thẻ" rồi sau đó Merge, như vậy là sai, vì phải đủ cả 3 điều kiện thì mới merge:
- Cột "chứng từ" phải trùng nhau
- Cột "số thẻ tín dụng" phải trùng nhau
- Chung 1 số chứng từ, và 1 số thẻ tín dụng, như cột "Tiền cà thẻ" lại chỉ có 1, các giá trị còn lại bằng 0
Lỗi 1: chung "số thẻ tín dụng", nhưng "chứng từ" là 2 số khác nhau --> merge là sai
Lỗi 2: chung "chứng từ", nhưng "số thẻ tín dụng" là 2 số khác nhau --> merge là sai
Lỗi 3:
Trùng cả 2 cột "chứng từ" và cột "số thẻ tín dụng" nhưng tổng của cột "SellPrce" = 8.570.000, bé hơn giá trị của cột "Tiền cà thẻ" = 7.360.000, nên sau khi merge tô màu đỏ, thay vì tô màu xanh như bình thường
Lỗi 4:
Trùng cả 2 cột "chứng từ" và cột "số thẻ tín dụng" nhưng do đoạn code viết là đi lên một ô rồi merge thay vì phải đi xuống một ô mới merge

Bạn có thể cho mình số điện thoại ?, nếu ở HCM, thì hẹn uống cafe (mình mời) gặp trực tiếp mình trình bày để bạn hiểu hơn, bạn viết code cũng chính xác và nhanh hơn (số của mình là 0977.96.4444)
Nếu bạn cần giúp thì lên Binh dương, gần ngã tư Bình Phước. Mình huớng dẫn cho. Mấy vụ này 15 phút là xong
Tại bạn gởi file ban đầu và file này 1 trời 1 vực thì code nào hiểu cho bạn.
 
Upvote 0
Anh Hải ơi giúp em với!
- Em sửa lại là sort theo thứ tự: Ngày bán, Chứng từ, Số thẻ tín dụng, Tiền cà thẻ, nhưng em thấy code sort chỉ có 3 đối số nên em bỏ cái Số thẻ tín dụng, chỉ còn sort 3 cột : Ngày bán, Chứng từ, Tiền cà thẻ mà vẫn không được, nếu được anh giúp em sort 4 đối số luôn nha
- Toàn bộ phần code xử lý không có chạy

Lưu ý: so sánh với cột "Thành tiền sau giảm giá" để tô xanh lá hay đỏ chứ không phải so sánh cột "SellPrce" như trước anh em mình thảo luận nha anh

Anh giúp em nha, cảm ơn anh nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Tôi góp ý cho bạn:

Muốn nhờ thành viên diễn đàn giúp thì điều đầu tiên cần nhất là tiêu đề cột phải thực tế (bất di bất dịch) nghĩa là File trước tiêu đề có 15 cột, thì File sau cũng 15 cột và tên tiêu đề của các lần phải giống nhau hoàn toàn.

- Giúp cột nào thì nêu cụ thể tên tiêu đề cột chứ trong File gửi lần 2 tiêu đề cả 2 sheet đâu có giống nhau và bạn cũng không nêu nhờ giúp cụ thể tên sheet nào?
 
Upvote 0

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

Back
Top Bottom