Agilizar procesamiento

Saludos Experto, agradecería me puedas ayudar. Sabes tengo un archivo en el que en la "Hoja 1" (Indice)en la que tengo un botón CommandButton que uso para imprimir y que ordena así a la impresión automática hasta la "hoja7"(Donde tengo rangos específicos). Mi problema es que cada vez que efectúo esta función demora en el procesamiento a imprimir y tengo que esperar para de nuevo hacer uso del mencionado archivo, igual manera al momento de abrir el archivo (ya que tengo 30 checkbox). ¿Me pgto si es que el programa citado abajo es muy extenso?. Y por último si la lentitud o pesado(3,749 KB) al abrir el archivo es por tener demasiados checkbox.
Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
Sheets(Array("Hoja2")).Select
ActiveSheet.PageSetup.PrintArea = "$B$10:$J$66"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End If
.
.
.
.
If CheckBoxn.Value = True Then
Sheets(Array("hoja7")).Select
ActiveSheet.PageSetup.PrintArea = "$B$10:$p$55"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End If
sheets("Hoja1" ).Select
End sub
Agradezco su amable atención
Gracias y Saludos
Javier

1 respuesta

Respuesta
1
La verdad no veo por qué sea lento en proceso, ya que el archivo no es pesado en realidad (para ser un excel), aunque podría ser tu macro fuere trabajosa.
Para agilizarla un poco, podrías cambiar la instrucción
Sheets(Array("Hoja2")).Select
por sheets("Hoja2").Select
A menos que de verdad tenga sentido generar un arreglo (matriz) en cada hoja. También, si los rangos de impresión no cambian, no necesitas especificarlos cada vez que corre la macro.
Otra cosa que puedes intentar, es si cada uno de los 30 checkbox se activan independientemente, en lugar de que exista una macro que haga los 30 if, podrías a cada uno asignarle una del tipo checkBoxn_AlHacerClic que sólo evalúe el valor (marcado) de un único casilla de verificación, y la mande imprimir con una instrucción del tipo
sheets("Hoja2"). PrintOut copies:=1, collate:=True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas