
Inexplicable ralentización en la ejecución de un código -Y NO SIEMPRE!-
Publicado por Ramón (102 intervenciones) el 09/02/2024 11:19:55
No exagero en nada cuando digo que llevo 'puliendo' una aplicación determinada añadiendo procedimientos al procedimiento básico y esencial de ella que copiaré al final.
El procedimiento base -aunque mejor sería hablar en plural pues se trata de la ejecución de 20 OptionButtons idénticas en el fondo todas ellas-, podría describirlo así: Desde un UserForm específico en el que he dispuesto hasta 20 OptionButton ejercito una de ellas y a consecuencia de ello, en cuatro momentos diferentes, copio datos de 3 de las hojas de que consta el libro -TABLA1, TABLA2 Y TABLA3, que en el momento en que ejercito la acción están ocultas... añado este detalle por si tuviera algo que ver...-, y los pego en la hoja que en segundo plano permanece visible tras el UserForm -es la que llamo HOJABASE en el código que copiaré-.
Pues bien, inexplicablemente -al menos para mí- la ejecución del código, en ocasiones, pues no siempre sucede así, aleatoriamente pues, para mayor desconcierto, la ejecución del código se demora hasta 5 segundos -en otras ya digo que lo hace en los milisegundos que debe hacerlo y todo sin seguir un patrón de tiempos que se pueda definir...-.
Este es el código -absolutamente simple... en mi aplicación tengo otro infinitamente más complejos...-:
Por favor, este tema tiene para mí la mayor importancia, cualquier idea que me sugiráis será bien recibida y puesta INMEDIATAMENTE en práctica
El procedimiento base -aunque mejor sería hablar en plural pues se trata de la ejecución de 20 OptionButtons idénticas en el fondo todas ellas-, podría describirlo así: Desde un UserForm específico en el que he dispuesto hasta 20 OptionButton ejercito una de ellas y a consecuencia de ello, en cuatro momentos diferentes, copio datos de 3 de las hojas de que consta el libro -TABLA1, TABLA2 Y TABLA3, que en el momento en que ejercito la acción están ocultas... añado este detalle por si tuviera algo que ver...-, y los pego en la hoja que en segundo plano permanece visible tras el UserForm -es la que llamo HOJABASE en el código que copiaré-.
Pues bien, inexplicablemente -al menos para mí- la ejecución del código, en ocasiones, pues no siempre sucede así, aleatoriamente pues, para mayor desconcierto, la ejecución del código se demora hasta 5 segundos -en otras ya digo que lo hace en los milisegundos que debe hacerlo y todo sin seguir un patrón de tiempos que se pueda definir...-.
Este es el código -absolutamente simple... en mi aplicación tengo otro infinitamente más complejos...-:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'ANTES DE NADA DESPROTEJO LA HOJA -QUE VOLVERÉ A PROTEGER UNA VEZ QUE COPIE LOS DATOS DE LA OPCIÓN EJERCITADA:
Sheets("HOJABASE").Unprotect
Range("O10") = "Texto de la opción ejercitada."
Range("O10").Font.Bold = True
Range("O10").Font.Color = vbBlue
Application.ScreenUpdating = False
' DOY FORMATO A LAS CELDAS QUE RECOGERÁN LOS DATOS DE LA OPCIÓN:
Range("P14:S18").Font.Size = 11
Range("P14:S18").Font.Italic = True
Range("P14:S18").NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Sheets("TABLA1").Range("B6:B10").Copy
Sheets("HOJABASE").Range("P14").PasteSpecial xlPasteValues
Sheets("TABLA1").Range("B14:B18").Copy
Sheets("HOJABASE").Range("Q14").PasteSpecial xlPasteValues
Sheets("TABLA2").Range("B13").Copy
Sheets("HOJABASE").Range("R14:R18").PasteSpecial xlPasteValues
Sheets("TABLA3").Range("C14:C18").Copy
Sheets("HOJABASE").Range("S14").PasteSpecial xlPasteValues
' OCULTO LA BARRA DE FÓRMULAS:
Application.DisplayFormulaBar = False
Application.CutCopyMode = False
Range("A1").Select
Sheets("HOJABASE").Protect
Application.ScreenUpdating = True
Por favor, este tema tiene para mí la mayor importancia, cualquier idea que me sugiráis será bien recibida y puesta INMEDIATAMENTE en práctica

Valora esta pregunta


0