Saher Naji
Board Regular
- Joined
- Dec 19, 2019
- Messages
- 76
- Office Version
- 2013
- Platform
- Windows
Hello, I'm tryin to sort values based on colors, then on values
The macro was working very well, but on one sheet, so I have to create a new module for each sheet, and because I have around 400 sheets,
This is the simple working macro:
The best way is to run the macro for the active sheet, not for a named sheet
This my try, but it's not working, I don't know how to re-write the code to work on the active sheet
Thank you very much
The macro was working very well, but on one sheet, so I have to create a new module for each sheet, and because I have around 400 sheets,
This is the simple working macro:
VBA Code:
Sub A_Sort()
'
' A_Sort Macro
'
'
Range("B4:J43").Select
ActiveWorkbook.Worksheets("Jan_3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Jan_3").Sort.SortFields.Add(Range("B4:B43"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(169, _
208, 142)
ActiveWorkbook.Worksheets("Jan_3").Sort.SortFields.Add(Range("B4:B43"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(244, _
176, 132)
ActiveWorkbook.Worksheets("Jan_3").Sort.SortFields.Add(Range("B4:B43"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(184, _
137, 219)
ActiveWorkbook.Worksheets("Jan_3").Sort.SortFields.Add(Range("B4:B43"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(155, _
194, 230)
ActiveWorkbook.Worksheets("Jan_3").Sort.SortFields.Add2 Key:=Range("G4:G43") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Jan_3").Sort
.SetRange Range("B3:J43")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B4:B43").Select
ActiveWorkbook.Worksheets("Jan_3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Jan_3").Sort.SortFields.Add2 Key:=Range("B4:B43") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Jan_3").Sort
.SetRange Range("B4:B43")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("C4").Select
End Sub
The best way is to run the macro for the active sheet, not for a named sheet
This my try, but it's not working, I don't know how to re-write the code to work on the active sheet
VBA Code:
Sub A_Sort()
'
' A_Sort Macro
'
'
Dim WS As Worksheet
Set WS = ActiveSheet
With WS.Sort
Range("B4:J43").Select
WS.Range("G3:G43").Sort.SortFields.Clear
WS.Range("G3:G43").Sort.SortFields.Add(Range("B4:B43"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(169, _
208, 142)
WS.Range("G3:G43").Sort.SortFields.Add(Range("B4:B43"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(244, _
176, 132)
WS.Range("G3:G43").Sort.SortFields.Add(Range("B4:B43"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(184, _
137, 219)
WS.Range("G3:G43")).Sort.SortFields.Add(Range("B4:B43"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(155, _
194, 230)
WS.Range("G3:G43").Sort.SortFields.Add2 Key:=Range("G4:G43") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With WS.Range("G3:G43").Sort
.SetRange Range("B3:J43")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B4:B43").Select
WS.Range("G3:G43").Sort.SortFields.Clear
WS.Range("G3:G43").Sort.SortFields.Add2 Key:=Range("B4:B43") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With WS.Range("G3:G43").Sort
.SetRange Range("B4:B43")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("C4").Select
End Sub
Thank you very much