Phuong0907357642
Thành viên mới

- Tham gia
- 5/8/11
- Bài viết
- 41
- Được thích
- 0
Nhờ các anh chị hỗ trợ
Em đã nhờ viết VBA cho việc tách các nhân viên thuộc cửa hàng ra thành từng file tương ứng là: 1 file là của cửa hàng trong đó từng sheet là của nhân viên
Nhưng em có nhận đổi hàng nếu sản phẩm hư hỏng và theo giá em quy định. Giá em quy định là Sheet kế bên trong file tổng
Em gặp vấn đề là:
Khi em tách từng cửa hàng thì từ sản phẩm đổi thì mất hết công thức Vlookup từ sheet hàng đổi qua cho từng nhân viên trong cửa hàng đó
Nhờ các anh chị hướng dẫn giúp em là làm cách nào khi em tách từng file excel cho từng cửa hàng và từng sheet trong đó là nhân viên của cửa hang đó mà nó vẫn lấy sheet "đổi hàng" qua" và có công thức em đã tạo luôn ah
Em gởi tham khảo file em tách từng file ah:
Public Sub GPE()
Dim Dic As Object, Tmp1 As String, Tmp2 As String, Arr, Path As String
Dim I As Long, WbMain As Workbook, Z As Long, ShMain As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set WbMain = ThisWorkbook
Set ShMain = WbMain.Sheets("DATA_KETOAN")
Path = ActiveWorkbook.Path
On Error Resume Next
ShMain.ShowAllData
Arr = ShMain.Range("A1").CurrentRegion.Value
Set Dic = CreateObject("Scripting.Dictionary")
For I = 2 To UBound(Arr)
Tmp1 = Arr(I, 4)
If Not Dic.Exists(Tmp1) Then
Dic.Add Tmp1, ""
ShMain.Copy
With ActiveWorkbook
For Z = 2 To UBound(Arr)
If Arr(Z, 4) = Tmp1 Then
Tmp2 = Arr(Z, 3)
If Not Dic.Exists(Tmp2) Then
Dic.Add Tmp2, ""
.Sheets.Add After:=.Sheets(.Sheets.Count)
.Sheets(.Sheets.Count).Name = Tmp2
.Sheets(1).Range("A1").CurrentRegion.AutoFilter 4, Tmp1
.Sheets(1).Range("A1").CurrentRegion.AutoFilter 3, Tmp2
.Sheets(1).Range("A1").CurrentRegion.SpecialCells(12).Copy
.Sheets(Tmp2).Range("A1").PasteSpecial xlPasteColumnWidths
.Sheets(Tmp2).Range("A1").PasteSpecial xlPasteValues
.Sheets(Tmp2).Range("A1").PasteSpecial xlPasteFormats
.Sheets(1).ShowAllData
End If
End If
Next Z
.Sheets(1).Delete
.Close True, Path & "\" & Tmp1 & ".xlsx"
End With
End If
Next I
Set Dic = Nothing
MsgBox "Da Tach Xong!"
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Em cám ơn các anh chị đã giúp đỡ em nhiều ah
Em đã nhờ viết VBA cho việc tách các nhân viên thuộc cửa hàng ra thành từng file tương ứng là: 1 file là của cửa hàng trong đó từng sheet là của nhân viên
Nhưng em có nhận đổi hàng nếu sản phẩm hư hỏng và theo giá em quy định. Giá em quy định là Sheet kế bên trong file tổng
Em gặp vấn đề là:
Khi em tách từng cửa hàng thì từ sản phẩm đổi thì mất hết công thức Vlookup từ sheet hàng đổi qua cho từng nhân viên trong cửa hàng đó
Nhờ các anh chị hướng dẫn giúp em là làm cách nào khi em tách từng file excel cho từng cửa hàng và từng sheet trong đó là nhân viên của cửa hang đó mà nó vẫn lấy sheet "đổi hàng" qua" và có công thức em đã tạo luôn ah
Em gởi tham khảo file em tách từng file ah:
Public Sub GPE()
Dim Dic As Object, Tmp1 As String, Tmp2 As String, Arr, Path As String
Dim I As Long, WbMain As Workbook, Z As Long, ShMain As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set WbMain = ThisWorkbook
Set ShMain = WbMain.Sheets("DATA_KETOAN")
Path = ActiveWorkbook.Path
On Error Resume Next
ShMain.ShowAllData
Arr = ShMain.Range("A1").CurrentRegion.Value
Set Dic = CreateObject("Scripting.Dictionary")
For I = 2 To UBound(Arr)
Tmp1 = Arr(I, 4)
If Not Dic.Exists(Tmp1) Then
Dic.Add Tmp1, ""
ShMain.Copy
With ActiveWorkbook
For Z = 2 To UBound(Arr)
If Arr(Z, 4) = Tmp1 Then
Tmp2 = Arr(Z, 3)
If Not Dic.Exists(Tmp2) Then
Dic.Add Tmp2, ""
.Sheets.Add After:=.Sheets(.Sheets.Count)
.Sheets(.Sheets.Count).Name = Tmp2
.Sheets(1).Range("A1").CurrentRegion.AutoFilter 4, Tmp1
.Sheets(1).Range("A1").CurrentRegion.AutoFilter 3, Tmp2
.Sheets(1).Range("A1").CurrentRegion.SpecialCells(12).Copy
.Sheets(Tmp2).Range("A1").PasteSpecial xlPasteColumnWidths
.Sheets(Tmp2).Range("A1").PasteSpecial xlPasteValues
.Sheets(Tmp2).Range("A1").PasteSpecial xlPasteFormats
.Sheets(1).ShowAllData
End If
End If
Next Z
.Sheets(1).Delete
.Close True, Path & "\" & Tmp1 & ".xlsx"
End With
End If
Next I
Set Dic = Nothing
MsgBox "Da Tach Xong!"
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Em cám ơn các anh chị đã giúp đỡ em nhiều ah