Enlazar check Box y Comand Button

Felices Fiestas Experto
Desearía me pueda ayudar por favor.
Tengo 5 Hojas ( A,B,C,D y E). En "A" tengo una lista de productos y ahí es donde deseo poner un botón Command Button que al hacer click pueda imprimir sucesivamentre las hojas posteriores ("B hasta E")la misma que sería necesario seleccionarla con el Check Box. Para ser más claro de las Hojas "B" a "E" hay 80 cuadros (rangos)en cada una de ellas (80*5=400) y que al hacer click con el Command Button (previa selección con el check Box) pueda Imprimir el rango "X" de la Hoja "B", la "Y" de la Hoja "C" y así sucesivamente. Es que por tanto tendré que colocar en la Hoja "A" Unos 90 Botones de Command Button ya que cada pdto es independiente de otro y en consecuencia su impresión también. La vez pasada me ayudo ( Adjunto Ejemplo) por lo cual estoy muy agradecido sin embargo con este nuevo caso que expongo tengo este problemita.
Private Sub ComandButton1_clik()
Sheets(Array("Indice", "hoja2", "hoja3")).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End sub.
P.D.- "Indice" = Hoja "A", "Hoja 2"= Hoja "B".
Infinitas Gracias de Antemano por su valiosa ayuda y no me queda m{as que Desearles éxitos esté nuevo año 2007
Saludos desde el Perú.
Javier

2 Respuestas

Respuesta
1
Por lo que planteas me parece que es demasiado y lo que deberías hacer es ir "caso por caso" pues no tienes nada "estandarizado"; deberías ir con algo como
If checkButton1.Value = TRUE Then
'... imprimir hoja B rango b1
'... imprimir hoja C rango c1
'...
End If
If checkButton2.Value = TRUE Then
'... imprimir hoja B rango b2
'... imprimir hoja C rango c2
'...
End If
Etc
Pero la programación debe ir al detalle pues para poder hacer algo optimo lo deberías tener más normalizado
Ok Agradeciendo su respuesta inmediata. Aclaro :
Es de mi interés imprimir únicamente "rangos" específicos que "varian" en las diferentes hojas:
Hoja "B" = "b10:j66"
hOJA "C" = "b10:p55"
Hoja "D" = "b68:L67"
Hoja "E" = "A12:K12" y
Hoja "F" = "B12:I52"
En la Hoja "A" o "Indice" estaría el botón Commandbuton y sus respectivas casillas de verificación (CheckBox).
Gracias por la respuesta y disculpa las molestias.
Saludos.
Javier
***************************************
Nota: Por otro lado las mencionada Hojas además tienen otros rangos ajenos a los expuestos, que imprimiría posteriormente pero ya con otro ComandButton2. Pero eso es otro asunto que contemplría posteriormente.
Me explico mejor Gustavo :
Deseo imprimir 5 rangos de los cuales están en las hoja que llame :"B","C","D" "E"y "F" cuyos rangos son: "b10:j66","b10:p55","b68:L67","A12:K12","B12:I52" respectivamente. AdemÁs debo de aclarar que en la hoja "A" deseo poner un botón de command Button y que previa selección (por checkBox) de los mencionados rangos
pueda imprimir lo deseado, pues habrá veces que no desearé imprimir los 5 rangos completos sino un parcial
Agradezco su apoyo de antemano y estoy a vuestra disposición de poder aclarar alguna duda adicional
Saludos
Javier
Ok, vamos por partes
En la hoja "Indice"...¿Qué es lo que seleccionas, los rangos a imprimir o las hojas que querés imprimir?
En caso de ser un determinado rango...¿en todas las hojas será el mismo rango?
A partir de allí la seguimos
no entiendo la pregunta; ¿Cómo sabes que rango tenés que imprimir de las hojas?
El producto que marcas en la hoja A...¿qué relación hay con la información del resto de las hojas?
Si me aclarás un poco más vemos pero así la verdad que no lo tengo demasiado claro. En principio te comento que con la instrucción
ActiveSheet.PageSetup.PrintArea = "$L$21:$P$27"
Seteás el área de impresión; lo que queda es ver como sabe cual es el rango que tiene que imprimir en cada hoja y hacer los ciclos respectivos para que vaya imprimiendo todo.
Gustavo realice ésta operación y tuve éxito :
Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
Sheets(Array("G")).Select
ActiveSheet.PageSetup.PrintArea = "$B$10:$J$66"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End If
If CheckBox2.Value = True Then
Sheets(Array("h")).Select
ActiveSheet.PageSetup.PrintArea = "$B$10:$p$55"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End If
If CheckBox3.Value = True Then
Sheets(Array("i")).Select
ActiveSheet.PageSetup.PrintArea = "$B$68:$l$67"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End If
If CheckBox4.Value = True Then
Sheets(Array("j")).Select
ActiveSheet.PageSetup.PrintArea = "$B$12:$I$52"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End If
If CheckBox5.Value = True Then
Sheets(Array("k")).Select
ActiveSheet.PageSetup.PrintArea = "$B$10:$J$14"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End If
End Sub
***************************
El problemita ahora es de que al hacer click para la impresión se queda en la hoja "F" y yo desearía que regrese o vuelve a la hoja"A", donde está el botón commandbutton.
¿Cómo hago para que regrese a la hoja que deseo? Y finalmente si la operación expuesta lineas arriba se puede mejorar.
Mil disculpas por tanta insistencia
Saludos
Javier
Javier
Al final de todo (antes del End Sub) coloca
Sheets("Indice").Select
Respuesta
1
Por la forma que se fueron sucediendo las consultas, me parece que este tema ya lo tenés resuelto.
Solo me permitiré sugerirte el uso de otra herramienta, en lugar de los 90 commandbutton en la hoja A: el uso de listas validadas donde el usuario seleccione los distintos cuadros o rangos según la hoja seleccionada.
Bueno, no se si será posible ya que no comprendo bien cómo están armados esos cuadros... pero te dejo la idea.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas