Tô màu từng phiếu nhập xuất

Liên hệ QC

charlie.vo

Thành viên mới
Tham gia
22/6/07
Bài viết
16
Được thích
1
xin các cao thủ giúp đỡ cách tô màu cho từng dòng theo số phiếu nhập xuất, mình thử nhiều cáhc rồi vẫn chưa được.
xin cảm ơn
xin lỗi vẫn ko up file được
cao thủ nào có nhã ý giúp thì liên hệ Y!M dùm, mình rất biết ơn: charlie.lovevn

cố gắng mãi cũng up được file, đổ cả mồ hôi hột;

các bạn giúp dùm với
 

File đính kèm

  • Project-quan ly kho-RVD.xls
    93.5 KB · Đọc: 19
Lần chỉnh sửa cuối:
nếu theo yêu cầu của bạn thì sử dụng conditional formatting

xin các cao thủ giúp đỡ cách tô màu cho từng dòng theo số phiếu nhập xuất, mình thử nhiều cáhc rồi vẫn chưa được.
xin cảm ơn
xin lỗi vẫn ko up file được
cao thủ nào có nhã ý giúp thì liên hệ Y!M dùm, mình rất biết ơn: charlie.lovevn

nếu theo yêu cầu của bạn thì sử dụng conditional formatting nhưng quan trọng là bạn phải up file vidụ lên, mọi người mới giúp chứ.
 
đã sửa rồi ndu à, giống như mấy phiếu đầu vậy đó, không cần phân biệt PN hay PX, chỉ cần phân biệt giữa các phiếu với nhau là được rồi.
cám ơn nhiều
Xem file đính kèm này!
Vào menu Format\Conditional Formating để xem công thức nhé
 

File đính kèm

  • Tomauxenke_01.rar
    15.2 KB · Đọc: 47
Đã vào CF làm như hướng dẫn nhưng nó lại báo lỗi (hình gửi kèm)
ndu xem lại file của ndu dùm, hình như chỉ có những phiếu đầu thì nó tô màu đúng, tuy nhiên những phiếu dưới thì nó lại tô màu xen kẽ ngay trong phiếu, mình cũng không hiểu nữa
ndu xem cụ thể phiếu số PX0906012 và PN0906012 nha
 

File đính kèm

  • LOI.JPG
    LOI.JPG
    100.7 KB · Đọc: 26
Lần chỉnh sửa cuối:
Đã vào CF làm như hướng dẫn nhưng nó lại báo lỗi (hình gửi kèm)
ndu xem lại file của ndu dùm, hình như chỉ có những phiếu đầu thì nó tô màu đúng, tuy nhiên những phiếu dưới thì nó lại tô màu xen kẽ ngay trong phiếu, mình cũng không hiểu nữa
ndu xem cụ thể phiếu số PX0906012 và PN0906012 nha
Công thức này có liên quan đến địa chỉ tương đối, vì thế điều quan trọng khi gõ công thức là CON TRỎ CHUỘT ĐANG NẰM Ở VỊ TRÍ NÀO
Bạn làm theo trình tự như sau:
- Quét chọn từ A3 đến Q223
- Vào menu Format\Conditional Formating và gõ vào công thức:
PHP:
=MOD(INT(SUMPRODUCT(1/COUNTIF($A$3:$A3,$A$3:$A3))),2)
Để ý, địa chỉ tương đối trong công thức này cũng bắt đầu từ A3, tức từ cell đầu tiên mà bạn bôi đen... Nếu bạn bắt đầu từ 1 cell nào khác thì phải sửa công thức cho phù hợp
 
ndu xem lại file của ndu dùm, hình như chỉ có những phiếu đầu thì nó tô màu đúng, tuy nhiên những phiếu dưới thì nó lại tô màu xen kẽ ngay trong phiếu, mình cũng không hiểu nữa
ndu xem cụ thể phiếu số PX0906012 và PN0906012 nha

ndu xem lại dùm nha, những phiếu này nằm ở trong file của ndu post ý
 
ndu xem lại dùm nha, những phiếu này nằm ở trong file của ndu post ý
Tôi biết rồi... đây là lổi tính toán số thập phân của MS (ta tính đúng nhưng "hắn" tính sai)
Vậy sửa công thức:
PHP:
=MOD(INT(SUMPRODUCT(1/COUNTIF($A$3:$A3,$A$3:$A3))),2)
lại thành:
PHP:
=MOD(ROUND(SUMPRODUCT(1/COUNTIF($A$3:$A3,$A$3:$A3)),0),2)
Bạn test lại thử xem nhé
 

File đính kèm

  • Tomauxenke_02.rar
    15.7 KB · Đọc: 32
Xài cái này sẽ nhẹ nhàng, thanh cảnh & sinh động hơn nhiều nè, Xin mời!

PHP:
Option Explicit
Sub ColorFill()
 Dim eRw As Long, Ww As Long, Dem As Long, fRw As Long
 Dim Phieu As String:                        Dim Mau As Byte, Col As Byte
 
 eRw = [A65500].End(xlUp).Row:               Col = [IV1].End(xlToLeft).Column
 Mau = [A1].Interior.ColorIndex:             If Mau > 40 Then Mau = 34
 For Ww = 3 To eRw
   With Cells(Ww, "A")
      If .Value <> Phieu Then
         Dem = Dem + 1:             Phieu = .Value
         If fRw = 0 Then
            fRw = .Row
         Else
            Cells(fRw, "A").Resize(.Row - fRw, Col).Interior.ColorIndex = _
                            IIf(Dem Mod 2 = 0, Mau, 0)
            fRw = .Row
         End If
      End If
   End With
 Next Ww
 [A1].Resize(, Col).Interior.ColorIndex = Mau + 1
End Sub
 
PHP:
Option Explicit
Sub ColorFill()
 Dim eRw As Long, Ww As Long, Dem As Long, fRw As Long
 Dim Phieu As String:                        Dim Mau As Byte, Col As Byte
 
 eRw = [A65500].End(xlUp).Row:               Col = [IV1].End(xlToLeft).Column
 Mau = [A1].Interior.ColorIndex:             If Mau > 40 Then Mau = 34
 For Ww = 3 To eRw
   With Cells(Ww, "A")
      If .Value <> Phieu Then
         Dem = Dem + 1:             Phieu = .Value
         If fRw = 0 Then
            fRw = .Row
         Else
            Cells(fRw, "A").Resize(.Row - fRw, Col).Interior.ColorIndex = _
                            IIf(Dem Mod 2 = 0, Mau, 0)
            fRw = .Row
         End If
      End If
   End With
 Next Ww
 [A1].Resize(, Col).Interior.ColorIndex = Mau + 1
End Sub
Đua với sư phụ đây:
PHP:
Sub Tomau()
  Dim Clls As Range, Phieu As String, Check As Boolean
  With Range("A1").CurrentRegion
    For Each Clls In Intersect(.Cells, .Offset(2)).Resize(, 1)
      If Phieu <> Clls.Value Then
        Check = Not (Check): Phieu = Clls.Value
      End If
      Clls.Resize(, .Columns.Count).Interior.ColorIndex = -6 * Check
    Next
  End With
End Sub
 
Ta biết rằng màu sắc sẽ được thay đổi khi có sự chuyển đổi từ phiếu này sang phiếu khác ---> Từ đó tôi nghĩ ra có sự liên quan đến Xor Operator
Ứng dụng nó vào bài này sẽ thấy độc chiêu thế nào nhé:
PHP:
Sub Tomau()
  Dim Clls As Range, Check As Boolean
  With Range("A1").CurrentRegion
    For Each Clls In Intersect(.Cells, .Offset(2)).Resize(, 1)
      Check = (Clls(0) <> Clls) Xor Check
      Clls.Resize(, .Columns.Count).Interior.ColorIndex = -6 * Check
    Next
  End With
End Sub
Code cực gọn... Khỏi IF éc gì ráo nhé!
 

File đính kèm

  • Tomauxenke_03.rar
    20.8 KB · Đọc: 24
Đã cho macro vào file, chạy rất tốt. cảm ơn AE
Cho mình hỏi, mình mù tịt về VBA, làm sao để macro tự chạy hay gán một macro vào một button vậy. Mong mọi người hướng dẫn.
 
MÌnh đã ứng dụng macro, chạy rất tốt. Xin cảm ơn.
Nhưng thú thiệt, mình mù tịt VBA, AE vui lòng hướng dẫn cách cho macro tự chạy hay là cách chèn macro vào một button nha.
cảm ơn AE hỗ trợ.
 
Web KT
Back
Top Bottom