Imprimir hoja según variable

Hola, me gustaría saber cómo puedo hacer para que creando un botón de impresión, éste me imprima una o varias hojas del libro según una variable, es decir, si en la celda de la variable me da 3 (por ejemplo) me imprima la hoja 3, pero si me da 6 me imprima la hoja 6 y la 14, y así con el resto de variables.
Las hojas a imprimir no serán nunca las hojas activas, ya que en la primera hoja del libro es donde se creará el botón de impresión, y donde hay una especie de formulario donde se cubrirán los datos necesarios.
Espero haberme explicado bien.
Muchas gracias.
Respuesta
1
El botón tendrá una rutina como esta:
Sub imprimo()
dim nroHoja as integer
'ajustar nbre de hoja y rango
nroHoja = sheets("formulario").range("A5").value
sheets(nroHoja).PrintOut
sheets("formulario").select
End Sub
El nro de hoja será en el orden en que aparecen en las pestañas. Si dice 3 será la 3er pestaña, ¿ahora si dice 6 no sé porqué debiera imprimir la 6 y la 14...?
Se me olvidó decir, que después de imprimir, la hoja activa sea la primera, es decir, donde está el formulario y el botón de impresión.
Gracias de nuevo.
Un saludo
Hola:
La respuesta a tu pregunta es sencilla, porque dependiendo de los datos que inserte en el formulario, me tiene que imprimir 1 sola hoja o dos hojas diferentes, ya que necesitaré 1 hoja con un formato y otra con otro formato diferente (que estarán obviamente en hojas diferentes).
Es como si hicieses una petición a un organismo oficial, a un lugar tienes que llevar unos impresos con un formato y a otro lugar tienes que llevar lo mismo pero en un formato diferente. Por eso necesito que en alguna variable me imprima una sola hoja, ya que sólo tendré que entregarla en un sitio, y con otras variables me imprima dos hojas diferentes ya que tendré que entregar cada una en un sitio diferente y con sus formatos correspondientes.
Espero que me haya explicado bien y que mi ejemplo sirva para que entiendas qué es lo que necesito.
Muchas gracias de nuevo.
Un saludo.
Así como indico en la variable nroHoja que tome el 'nombre' de la hoja que aparece en A5, podrías agregar otras celdas o realizar la comparación allí mismo, algo así:
nroHoja = sheets("formulario").range("A5").value
if nroHoja = 3 then
sheets(nroHoja).PrintOut
else
if nroHoja = 6 then
sheets(6).PrintOut
sheets(14).PrinOut
end if
sheets("formulario").select
Con estas instrucciones de ejemplo podes armar la comparación que necesites.
Saludos
Elsa
http://es.geocities.com/lacibelesdepunilla/index
Muchas gracias, la verdad es que no sé mucho de Excel (estoy aprendiendo) y me estaba resultando difícil encontrar una solución a este problema.
Voy a probarla ahora mismo!
Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas