imprimir solo hojas listadas

11/12/2006 - 13:26 por cbm | Informe spam
Buenas, tengo una columna en la que aparecen los nombres de ciertas
hojas, y quiero meter un command button que imprima solo esas hojas.
¿Sabeis si es posible?
Gracias

Preguntas similare

Leer las respuestas

#1 Tux
11/12/2006 - 16:07 | Informe spam
cbm escribió:
Buenas, tengo una columna en la que aparecen los nombres de ciertas
hojas, y quiero meter un command button que imprima solo esas hojas.
¿Sabeis si es posible?
Gracias




Hola Cbm :-)

Pues si es posible creo dependiendo de como tengas los nombres de las
hojas si son fijas o no , me explico, si en esa columna vas a cambiar
esos nombres o siempre en ella estaran los mismos nombres de hojas?¿

Si siempre estaran los mismos nombres de hojas puedes utilizar algo asi:

Private Sub CommandButton1_Click()

Sheets(Array("Hoja1", "Hoja2", "Hoja3", "Hoja4")).PrintOut

End Sub

Este codigo solo imprime una seleccion de hojas sin hacer mencion a la
columna, ya que imprime solo las hojas que tu quieras que impriman.

Y esta otra hace referencia al nombre de la hoja que escribas en la
celda "A1" de la hoja dos, te imprimira si pones hoja1 te imprimira la
hoja1, si pones hoja2 pues la hoja 2 etc...(que por cierto no se como
hacerlo para la columna entera :-(

Sub imprimir_HOjas_Segun_Celda()

Dim Sh As Variant

Sh = Sheets("hoja2").Range("A1")

If Sh = "Hoja1" Then
Sheets("hoja1").PrintOut
End If
If Sh = "Hoja2" Then
Sheets("Hoja2").PrintOut
End If
If Sh = "Hoja3" Then
Sheets("Hoja3").PrintOut
End If

End Sub


Bueno nos comentas :-)

Saludos
Monica

PD: ¡Aun no estoy con aquella macro de la otra vez, lo cierto es que se
las trae! :-)



¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#2 cbm
11/12/2006 - 17:39 | Informe spam
Lo he solucionado adaptando una macro de Don Guillet a lo que
necesitaba (los nombres provienen de formulas asi que copio, pego
valores y ordeno)

Private Sub CommandButton2_Click()
Range("FJ1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("FK1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Sort Key1:=Range("FK1"), Order1:=xlDescending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("d1021").Select
For Each c In Sheets("Est").Range("fk1:fk1000")
On Error Resume Next
Worksheets(c.Value).PrintPreview
Next c

End Sub

Espero que te pueda servir, asi compenso lo de la otra macro :-)
Saludos,

Carlos

Tux ha escrito:

cbm escribió:
> Buenas, tengo una columna en la que aparecen los nombres de ciertas
> hojas, y quiero meter un command button que imprima solo esas hojas.
> ¿Sabeis si es posible?
> Gracias
>

Hola Cbm :-)

Pues si es posible creo dependiendo de como tengas los nombres de las
hojas si son fijas o no , me explico, si en esa columna vas a cambiar
esos nombres o siempre en ella estaran los mismos nombres de hojas?¿

Si siempre estaran los mismos nombres de hojas puedes utilizar algo asi:

Private Sub CommandButton1_Click()

Sheets(Array("Hoja1", "Hoja2", "Hoja3", "Hoja4")).PrintOut

End Sub

Este codigo solo imprime una seleccion de hojas sin hacer mencion a la
columna, ya que imprime solo las hojas que tu quieras que impriman.

Y esta otra hace referencia al nombre de la hoja que escribas en la
celda "A1" de la hoja dos, te imprimira si pones hoja1 te imprimira la
hoja1, si pones hoja2 pues la hoja 2 etc...(que por cierto no se como
hacerlo para la columna entera :-(

Sub imprimir_HOjas_Segun_Celda()

Dim Sh As Variant

Sh = Sheets("hoja2").Range("A1")

If Sh = "Hoja1" Then
Sheets("hoja1").PrintOut
End If
If Sh = "Hoja2" Then
Sheets("Hoja2").PrintOut
End If
If Sh = "Hoja3" Then
Sheets("Hoja3").PrintOut
End If

End Sub


Bueno nos comentas :-)

Saludos
Monica

PD: ¡Aun no estoy con aquella macro de la otra vez, lo cierto es que se
las trae! :-)



¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#3 Tux
11/12/2006 - 22:40 | Informe spam
cbm escribió:
Lo he solucionado adaptando una macro de Don Guillet a lo que
necesitaba (los nombres provienen de formulas asi que copio, pego
valores y ordeno)

Private Sub CommandButton2_Click()
Range("FJ1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("FK1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Sort Key1:=Range("FK1"), Order1:=xlDescending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("d1021").Select
For Each c In Sheets("Est").Range("fk1:fk1000")
On Error Resume Next
Worksheets(c.Value).PrintPreview
Next c

End Sub

Espero que te pueda servir, asi compenso lo de la otra macro :-)
Saludos,

Carlos




Gracias Carlos ;-) a lo que yo me la he acomodado a mi gusto asi:

Private Sub CommandButton1_Click()



[A1].Select
Range(Selection, Selection.End(xlDown)).Copy
[B1].PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Selection.Sort Key1:=Range("B1"), _
Order1:=xlDescending

For Each c In Sheets("Hoja3").Range("B1:B100")
On Error Resume Next
Worksheets(c.Value).PrintOut

Next c

[C1].Select

End Sub

¡Ya tengo otro codigo mas para mi coleccion!! :-)

Saludos
Monica



¡Un SAludo! :-)

www.fermu.com
www.zorval.es
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida