Hello,
I have a list of employees in Column A with a manual entry of % of work for the day in Column B. As an example Row 1 Column A&B should move together. There are headers in Column A&B with 10 employees currently. The current range is A1:B11. I would like to rotate the names in columnA plus any entry in column B bottom to top with the top moving down one row. I would like to repeat this each time the macro is selected, but add an option that may allow me to set a condition, such as only once a day if i need to in the future. Until we see how the workload is dispersed I am undecided on adding in the condition. I did try adapting code I found online as i tried to work through this, but it fails at "NewListValue(Placement(Counter), 1) = _" with subscript out of range. The code below was setup only for Column A, but did not work. I do still need A&B to move together. The code below was just a start to the solution. There may be better ways to appraoch this.

Sub NewList()
Dim Counter As Long
Dim NewListValue() As Variant
Dim OrgList As Range
Dim OrgListValue As Variant
Dim Placement As Variant

Set OrgList = Worksheets("Workload").Range("A2:A11")

Placement = Array(4, 3, 5, 7, 6, 8, 1, 9, 10, 2)
'Placement = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

OrgListValue = OrgList.Value

ReDim NewListValue(1 To UBound(OrgListValue, 1), 1 To 1)

For Counter = 1 To UBound(OrgListValue, 1)
NewListValue(Placement(Counter), 1) = _
OrgList(Counter, 1)

Next Counter
 
OrgList.Value = NewListValue

End Sub