nguyenminh121a122
Thành viên mới
- Tham gia
- 11/5/21
- Bài viết
- 27
- Được thích
- 9
Public Sub GPE()
Dim Dic As Object, sArr(), dArr(), I As Long, Tem As String, sct As String, count As Long
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range([A3], [C3].End(xlDown)).Value ' .Resize(, 3).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 1)
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 1) & sArr(I, 2)
If Not Dic.Exists(Tem) Then
count = count + 1
sct = "P" & sArr(I, 3) & Format(sArr(I, 1), "yymm") & Format(count, "000")
Dic.Add Tem, sct
dArr(I, 1) = sct
Else
dArr(I, 1) = Dic.Item(Tem)
End If
Next I
[D3].Resize(UBound(dArr, 1)) = dArr
Set Dic = Nothing
End Sub
Public Sub GPE()
Dim Dic As Object, sArr(), I As Long, Tem As String, sct As String, count As Long
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range([A3], [C3].End(xlDown)).Value
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 1) & sArr(I, 2)
If Not Dic.Exists(Tem) Then
count = count + 1
sct = "P" & sArr(I, 3) & Format(sArr(I, 1), "yymm") & Format(count, "000")
Dic.Add Tem, sct
sArr(I, 1) = sct
Else
sArr(I, 1) = Dic.Item(Tem)
End If
Next I
[D3].Resize(UBound(sArr, 1)) = sArr
Set Dic = Nothing
End Sub
Trời ạ, lần đầu thấy đánh số thứ tự chứng từ không phân biệt phiếu thu phiếu chiDạ cảm ơn anh, em mới vừa xem xong. Thấy đúng ý lắm anh ạ. !!!!!!
Sub ABC()
Dim Dic As Object, sArr(), i&, sRow&, pt&, pc&, iKey$, sct$
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
i = .Range("A" & Rows.count).End(xlUp).Row
If i < 3 Then MsgBox ("Kong co du lieu!"): Exit Sub
sArr = .Range("A3:C" & i).Value
End With
sRow = UBound(sArr, 1)
For i = 1 To sRow
iKey = sArr(i, 1) & "|" & sArr(i, 2) & "|" & sArr(i, 3)
If Not Dic.Exists(iKey) Then
If UCase(sArr(i, 3)) = "T" Then
pt = pt + 1
sct = "PT" & Format(sArr(i, 1), "yymm") & Format(pt, "000")
Else
pc = pc + 1
sct = "PC" & Format(sArr(i, 1), "yymm") & Format(pc, "000")
End If
Dic.Add iKey, sct
sArr(i, 1) = sct
Else
sArr(i, 1) = Dic.Item(iKey)
End If
Next i
Sheet1.Range("D3").Resize(sRow, 1) = sArr
End Sub
Hổng dám đuổi việc đâu. Một đống chứng từ, hồ sơ "tự động" bằng VBA nằm đó. Tôi chắc chắn là chỉ một mình đương sự biết chuyện gì xảy ra (nếu co biết). Đuổi đi rồi ai vào lãnh cái đống rác ấy?... thật ra đánh số chứng từ kiểu nầy trước sau gì cũng bị đuổi việc
Ý như thế nào phải nói rỏ từ đầu, làm mình lo bạn bị đuổi việc không có cơ sởEm mới cho chạy thử và kiểm tra thì em thấy lệch ý em ở chỗ là: Nếu sang tháng sau thì phải bắt đầu 1 số mới chứ không phải cộng tiếp thì mình có thay đổi được không vậy anh ?
Ví dụ cuối tháng 01 là PC2101100, thì sang bắt đầu tháng 2 phải là PC2102001.
Cảm ơn anh đã xem bài !!!!
Sub ABC()
Dim Dic As Object, sArr(), i&, sRow&, pt&, pc&, iKey$, ym$, sct$
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
i = .Range("A" & Rows.count).End(xlUp).Row
If i < 3 Then MsgBox ("Kong co du lieu!"): Exit Sub
sArr = .Range("A3:C" & i).Value
End With
sRow = UBound(sArr, 1)
For i = 1 To sRow
If ym <> Format(sArr(i, 1), "yymm") Then
ym = Format(sArr(i, 1), "yymm")
pt = 0: pc = 0
End If
iKey = sArr(i, 1) & "|" & sArr(i, 2) & "|" & sArr(i, 3)
If Not Dic.Exists(iKey) Then
If UCase(sArr(i, 3)) = "T" Then
pt = pt + 1
sct = "PT" & ym & Format(pt, "000")
Else
pc = pc + 1
sct = "PC" & ym & Format(pc, "000")
End If
Dic.Add iKey, sct
sArr(i, 1) = sct
Else
sArr(i, 1) = Dic.Item(iKey)
End If
Next i
Sheet1.Range("D3").Resize(sRow, 1) = sArr
End Sub