Inicio > Microsoft Excel > gualo > Agilizar procesamiento

Agilizar procesamiento

Experto:
Usuario:
Fecha: 15/01/2007
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
13/01/2007
aprendisaje7, usuario preguntando en Microsoft Excel
Usuario
Saludos Experto, agradecería me puedas ayudar. Sabes tengo un archivo en el que en la "Hoja 1" (Indice)en la que tengo un boton CommandButton que uso para imprimir y que ordena así a la impresión automatica hasta la "hoja7"(Donde tengo rangos especificos). Mi problema es que cada vez que efectuo 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

Agradesco su amable atención
Gracias y Saludos
Javier
13/01/2007
aprendisaje7, experto respondiendo en Microsoft Excel
Experto
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 intrucción del tipo
sheets("Hoja2").PrintOut copies:=1, collate:=True
15/01/2007
aprendisaje7, usuario preguntando en Microsoft Excel
Usuario
Gracias. Experto
Enlaces patrocinados