Cómo seleccionar rango y...

ColdGeorge

Active Member
Joined
Aug 21, 2012
Messages
412
Office Version
  1. 2016
Platform
  1. Windows
Hola amigos

Hay que imprimir un formato cuya extensión varía regularmente, me gustaría que al seleccionar el rango de impresión, este se muestra en alguna celda, ¿cómo le hago? gracias y saludos.

ColdGeorge
 

Excel Facts

What is =ROMAN(40) in Excel?
The Roman numeral for 40 is XL. Bill "MrExcel" Jelen's 40th book was called MrExcel XL.
For anyone that wishes to tackle this:

Hello friends

You have to print a format whose extension varies regularly, I would like that when selecting the print range, this is displayed in some cell, how do I do? thanks and regards.

ColdGeorge
 
Upvote 0
El siguiente debe de ayudarle arrancar. Usted tendrá que experimentar y ajustarlo según sus necesidades particulares.
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)    
    With ActiveSheet
        If .Name = "Sheet1" Then .Range("A1") = .PageSetup.PrintArea
    End With
End Sub
 
Last edited:
Upvote 0
Hola a todos

Bien, vamos a iniciar los experimentos, ya les comunicaré, saludos y gracias.

ColdGeorge

El siguiente debe de ayudarle arrancar. Usted tendrá que experimentar y ajustarlo según sus necesidades particulares.
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)    
    With ActiveSheet
        If .Name = "Sheet1" Then .Range("A1") = .PageSetup.PrintArea
    End With
End Sub
 
Upvote 0
Hola amigos

Sólo deseo compartir los avances, esta es la primera opción, la cual muestra el rango que haya sido seleccionado.

Code:
Sub muestrango()
Range("I57").Value = Selection.Address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False)
End Sub
Esta es otra buena opción, pero el rango cambia conforme la selección.

Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Range("I57").Value = Selection.Address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False)
End Sub

Saludos, ColdGeorge
 
Upvote 0
Lo que usted ha puesto sí pondrá la dirección de la selección en la celda I57. Pero, favor note que la lógica que está usando implica que el usuario tiene que seleccionar las celdas antes de cada impresión. O sea, si el usuario selecciona A1:E10 y pone eso como el rango para imprimir y después selecciona F3 antes de imprimir, su macro pondra "F3" en la I57 aunque esto no es el rango que saldrá imprimido.


También vale la pena mencionar que lo que usted puso de segundo está en modulo de código del CUADERNO y no de una hoja. Significa que correrá para todas las hojas del cuaderno y no solamente a una específica.
 
Upvote 0
Hola Greg

Gracias por tu comentario, mi proyecto en el que trabajo consta de varios módulos, tenía en mente seleccionar un rango a imprimir y que se mostrara en una celda y de ahí, mediante otro macro, tomarlo los datos previos para la impresión, sin embargo, lo descarté, ya que no tiene mucho sentido realizarlo de esa manera, saludos.

ColdGeorge
 
Upvote 0

Forum statistics

Threads
1,223,936
Messages
6,175,507
Members
452,650
Latest member
Tinfish

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top