Excel - Establecer celdas para imprimir

   
Vista:

Establecer celdas para imprimir

Publicado por Rafa (4 intervenciones) el 05/12/2007 11:28:56
Buenas a todos! Pretendo hacer una cosa complicada que no sé si será posible. A ver... quiero tener en una Hoja dos celdas donde yo establezca el nombre de las celdas y me tome de referencia para imprimir.

Por ejemplo: pongo en una celda A1, y en otra D7, con lo que el área de impresión (mediante código) seria esa, para que al cambiar de valor (en caso de ser en un momento dado E10) se establezca automáticamente dicha área de impresión.

Difícil... casi imposible, ¿no?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Establecer celdas para imprimir

Publicado por Albert (70 intervenciones) el 05/12/2007 15:50:25
Buenas tardes, no se si te servira, este codigo me lo paso elsaMatilde de "todoexpertos"
lo que hace es seleccionar la celdas escritas de tu pagina hasta la primera en blanco por lo que le debes de indicar una columna como "principal" vaya que tenga todas las celdas escritas. (yo lo necesite para unas tablas dinamicas y no estar todo el rato seleccionando el area de impresión, lo puse en un commandButton i va de favula)
Espero que te sirva
(Sigo agradecido a Elsa Matilde)


Private Sub CommandButton1_Click()
'limpio area
ActiveSheet.PageSetup.PrintArea = ""
'doy formato a la paginaWith ActiveSheet.PageSetup
.Orientation = xlLandscape
.LeftMargin = Application.InchesToPoints(1.23)
.TopMargin = Application.InchesToPoints(0.36)
.BottomMargin = Application.InchesToPoints(0.4)
.PrintTitleRows = "$1:$3"
End With

'Selecciono A1
rango1 = Range("A1").Select
rango1 = Selection.Address

'selecciono la ultima
fila = Range("b65536").End(xlUp).Row 'aqui la columna principal
'se agrega la col siguiente Basico per las tablas dinamicas en aste caso clm. E
rango2 = Range(Selection, Cells(fila, 5)).Select
rango2 = Selection.Address

' lleno el area de impresión y muestro el msg
Ans = MsgBox("Se va a imprimir el rango" & " " & rango2, vbYesNo)
' pregunto si o no

'si es "si" imprimeixo
If Ans = vbYes Then
ActiveSheet.PageSetup.PrintArea = rango2

'VISTA PRELIMINAR
ActiveWindow.SelectedSheets.PrintPreview

'si es "no" borro l'area
Else
ActiveSheet.PageSetup.PrintArea = ""
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar