Paso de listbox a hoja muy , muy lento

Tengo un listbox que contiene 9 columnas y aproximadamente 70 filas, el cual quiero pasar a una hoja excel, para luego poder ajustar formatos e imprimir, pero tarda demasiado la rutina del paso de esta información, (casi 10 minutos), ¿estaré haciendo algo mal? ¿Se podrá acelerar?, este es el código,

Muchas Gracias!

Private Sub CommandButton1_Click()

Dim fila As Integer

hoja = "ped y obs"
For fila = 0 To ListBox1.ListCount - 1
Sheets(hoja).Cells(fila + 2, 1) = ListBox1.List(fila, 0)
Sheets(hoja).Cells(fila + 2, 2) = ListBox1.List(fila, 1)
Sheets(hoja).Cells(fila + 2, 3) = ListBox1.List(fila, 2)
Sheets(hoja).Cells(fila + 2, 4) = ListBox1.List(fila, 3)
Sheets(hoja).Cells(fila + 2, 5) = ListBox1.List(fila, 4)
Sheets(hoja).Cells(fila + 2, 6) = ListBox1.List(fila, 5)
Sheets(hoja).Cells(fila + 2, 7) = ListBox1.List(fila, 6)
Sheets(hoja).Cells(fila + 2, 8) = ListBox1.List(fila, 7)
Sheets(hoja).Cells(fila + 2, 9) = ListBox1.List(fila, 8)
Sheets(hoja).Cells(fila + 2, 10) = ListBox1.List(fila, 9)
Next
Unload Me
Sheets("ped y obs"). Activate

End Sub

1 Respuesta

Respuesta
1

La rutina parece correcta pero tenés que tener en cuenta:

- Si la hoja donde estás pasando los datos tiene alguna macro, esas del tipo Worksheet_Change

- Si la hoja tiene fórmulas que se recalculan cada vez que se modifica alguna celda. Si es así pasá la hoja a modo manual al inicio de la macro volviéndola a automático al finalizar, antes del End Sub

-¿Cuánto pesa tu libro?

Sdos y comenta lo que encuentres.

Elsa

Hola Elsa, el libro pesa unos 10 megas, la hoja donde se pega esta en blanco sin nada que tener en cuenta, pero dentro del libro hay muchas macros y algunas consultas a tablas sql. voy a ver si encuentro algún otro evento de otra hoja o rutina que este afectando al proceso , acabo de probar eliminando hojas del libro y dejandolo más liviano, y en este caso ha fluido mucho más rápido

Muchas Gracias nuevamente por tu tiempo! 

Finalmemte detecté que otra hoja que no estaba vinculada al listbox ni a la hoja destino, tenía muchos procesos de cálculos, al borrar estas fórmulas, el libro se aliviano en casi un mega y empezó a fluir más rápida la descarga del listbox a la hoja de excel, Muchas Gracias Elsa

No hay razón aparente según lo que comentas para que tu libro pese tanto.

Te sugiero que pases cada hoja a un libro nuevo y luego desde el Editor pases cada módulo y userform. También pega las macros de hojas si hay.

Observa el peso y nuevamente luego de incluir las consultas... Quizás lo aligeres más aun.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas