Hola raditz,
Hombre, creo que entiendo que es lo que quieres hacer, pero si expones el codigo te añadiremos un par de linias en vez de andar reconstruyendo todo el procedimiento. En todo caso, te comento que sospecho (juzgando por tu exposicion) que tu macro contiene al menos dos oportunidades para optimizacion:
1) en el 99% de lo casos en VBA no es necesario seleccionar/activar objetos para manipularlos, y menos para extraer los valores de celdas. Los bucles que usan el metodo Select son de lo mas ineficiente.
2) para asignar los valores de rangos a de celdas a unos listbox en la mayoria de los casos no es necesario recorrer celdas una por una (revisa la Ayuda para las propiedades LIst y Column del objeto ListBox). Por ejemplo:
- Código: Seleccionar todo
Private Sub UserForm_Initialize()
Dim Lista As Variant
Lista = ActiveSheet.Range("A2:A10")
ListBox1.List = Lista
End Sub
Asi que tal vez modificando un par de lineas en tu macro se eliminaria la necesidad de crear la variable de la celda activa. De todas formas el patron de la asignacion del rango a una variable, seria algo asi:
- Código: Seleccionar todo
Sub Test()
Dim MiCelda As Range
Set MiCelda = ActiveCell
'Tu codigo
MiCelda.Activate
End Sub