Why do you get 6, 7 ,7, 7?
Easy. The first run through gives you 6 since cQueue starts off as 5, 503 (the initial values of) is outside the if > 2 and < 499
If Cqueue = usr.aQueue Then
Cqueue= Cqueue + 1
End If
Cqueue = usr.aQueue
This code makes no sense to me. Let's say Cqueue is 5 (as it is initially when you start the method) and usr.aQueue is 5, then cQueue becomes 6 (because of Cqueue + 1), but then you reset Cqueue to 5 (via Cqueue = usr.aQueue). Before assigning the value to the user, you once more increment Cqueue by 1 (making it 6 again) and assigning it to the usr.aQueue. The next time you go from top to bottom of the list, you arrive at the bottom, in which case Cqueue = usr.aQueue sets Cqueue to 6. Then outside the For/Next loop, you increment the value by one, giving you 7. Next call, the same happens and therefore you get 6, 7, 7, 7, 7, 7 and on.