Perhaps using Application.Wait (or Do Events) may be better than looping? I don't think the computer is ever too fast... it's just doing stuff in a different priority than you want it to. Real life example below for which I have no idea why the Wait is necessary. HTH. Dave
UserForm13.ListBox1.ListIndex = -1 Application.Wait (Now + TimeValue("0:00:01")) UserForm13.ListBox1.Clear