Hello Friends,
I am using the below code which works fine but I would like you guys to let me know if there is a better way to write it.
Like there are some line in the code which selects some sheets. Is it possible to remove that
or any other improvements if possible last row function instead of .end(xlup) etc
Regards,
Humayun
I am using the below code which works fine but I would like you guys to let me know if there is a better way to write it.
Like there are some line in the code which selects some sheets. Is it possible to remove that
or any other improvements if possible last row function instead of .end(xlup) etc
VBA Code:
Private Sub update_quality_article_unit()
Dim ws As Worksheet
ActiveWorkbook.Unprotect Password:="2270166"
Set WSArray = Workbooks("REPORTS.xlsm").Worksheets(Array("DATABASE", "Supplier Wise", "Year Wise"))
For Each ws In WSArray
ws.Visible = xlSheetVisible
ws.Unprotect Password:="merchant"
If ws.AutoFilterMode Then ws.AutoFilterMode = False
Next
Worksheets("Supplier Wise").Range("B11:D123,B129:D161").ClearContents
Worksheets("Year Wise").Range("B11:D123,B129:D161").ClearContents
ActiveWorkbook.Worksheets("DATABASE").Range("orders_article").Copy Destination:=Sheets("DATABASE").Range("BA4")
ActiveWorkbook.Worksheets("DATABASE").Range("orders_quality").Copy Destination:=Sheets("DATABASE").Range("BB4")
ActiveWorkbook.Worksheets("DATABASE").Range("orders_unit").Copy Destination:=Sheets("DATABASE").Range("BC4")
Sheets("DATABASE").Select
'Remove Duplicate Start
Worksheets("DATABASE").Range("BA4:BC4", Range("BA4:BC4").End(xlDown)).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlNo
'Remove Duplicate End
'Sorting Start
Range("BA4:BC4", Range("BA4:BC4").End(xlDown)).Select
Worksheets("DATABASE").Sort.SortFields.Clear
Worksheets("DATABASE").Sort.SortFields.Add Key:=Range("BB4:BB4", Range("BB4:BB4").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Worksheets("DATABASE").Sort.SortFields.Add Key:=Range("BA4:BA4", Range("BA4:BA4").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Worksheets("DATABASE").Sort.SortFields.Add Key:=Range("BC4:BC4", Range("BC4:BC4").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="Set(s),Pc(s),Pair(s),Dozen(s)", DataOption:=xlSortNormal
With Worksheets("DATABASE").Sort
.SetRange Range("BA4:BC4", Range("BA4:BC4").End(xlDown))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Sorting End
Range("BA4:BC4", Range("BA4:BC4").End(xlDown)).Copy
Sheets("Supplier Wise").Range("B11").PasteSpecial Paste:=xlPasteValues
Sheets("Year Wise").Range("B11").PasteSpecial Paste:=xlPasteValues
Sheets("DATABASE").Select
Sheets("DATABASE").Range("BB4", Range("BB4").End(xlDown)).ClearContents
Range("BC4", Range("BC4").End(xlDown)).Cut Range("BB4")
'Sorintg Start
Range("BA4:BB4", Range("BA4:BB4").End(xlDown)).Select
Worksheets("DATABASE").Sort.SortFields.Clear
Worksheets("DATABASE").Sort.SortFields.Add Key:=Range("BA4:BA4", Range("BA4:BA4").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Worksheets("DATABASE").Sort.SortFields.Add Key:=Range("BB4:BB4", Range("BB4:BB4").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="Set(s),Pc(s),Pair(s),Dozen(s)", DataOption:=xlSortNormal
With Worksheets("DATABASE").Sort
.SetRange Range("BA4:BB4", Range("BA4:BB4").End(xlDown))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Sorting End
'Remove Duplicate Start
Range("BA4:BB4", Range("BA4:BB4").End(xlDown)).RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
'Remove Duplicate End
Range("BA4", Range("BA4").End(xlDown)).Copy
Sheets("Supplier Wise").Range("B129").PasteSpecial Paste:=xlPasteValues
Sheets("Year Wise").Range("B129").PasteSpecial Paste:=xlPasteValues
Sheets("DATABASE").Select
Sheets("DATABASE").Range("BB4", Range("BB4").End(xlDown)).Copy
Sheets("Supplier Wise").Range("D129").PasteSpecial Paste:=xlPasteValues
Range("C1").Select
Sheets("Year Wise").Range("D129").PasteSpecial Paste:=xlPasteValues
Range("C1").Select
Sheets("DATABASE").Range("BA4:BB4", Range("BA4:BB4").End(xlDown)).ClearContents
Range("A3").Select
For Each ws In WSArray
ws.Protect Password:="merchant", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingColumns:=True, AllowFormattingRows:=True
ws.Visible = xlSheetVeryHidden
Next
ActiveWorkbook.Protect Password:="2270166", Structure:=True, Windows:=True
End Sub
Regards,
Humayun