Control de impresión de hojas en un libro de excel

DanielP

New Member
Joined
Jul 3, 2007
Messages
2
Buenas tardes, espero me puedan ayudar con la sgte. consulta, ya la habia hecho en otro foro sin respuestas o comentarios, a la espera de sus buenos consejos.

Se puede hacer una macro que informe en una hoja llamemosle HOJA REPORTE las hojas que se han impreso de un libro, donde indique el día q se imprimio tal hoja, la cantida de veces que se imprimio y la hora de la impresión, de antemano gracias por sus comenntarios, este libro tendra aproximadamente unas 70 hojas.

Un buen amigo me paso la sgte macro días despúes de mi consulta, la he probado pero me salen errores no se cual sea el problema, espero me puedan dar la mano


Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean) 

Dim anombre As String 
Dim hojaa As Object 

For Each hojaa In ActiveWindow.SelectedSheets 
anombre = anombre & "," & hojaa.Name 
'Exit For 
Next 
'Si hay varias hojas seleccionadas se van a imprimir todas ellas. 
'En la variable "anombre" se memorizan los nombres de todas esas 
hojas seleccionadas (que se imprimen) 
'--------------- 

Select Case InputBox("Indica por favor tu clave de acceso.", 
"Privilegios del impresor...") 

'Aquí indica la clave tuya y la clave de la persona a la que 
autorices. La persona autorizada sólo conoce su clave: por ejemplo 
"clave222"; no conoce tu clave. 
Case "clave111", "clave222" 

MsgBox "Clave aceptada. Iniciando proceso..." 

'Aquí registrará en la Hoja7, en la columna "A", y en la 
primera fila que encuentre libre, el nombre de la hoja activa que será la que 
se imprime 
'y en la misma fila y siguiente columna te registrará el dia y 
la hora de la impresión. 

Sheets("Hoja7").Range("A45000").End(xlUp).Offset(1, 0) = 
ActiveSheet.Name 
Sheets("Hoja7").Range("A45000").End(xlUp).Offset(0, 1) = Now 

'aquí se anotan las hojas selecionadas por ejemplo: " 
,Hoja2,Hoja3,Hoja5" 
Sheets("Hoja7").Range("A45000").End(xlUp).Offset(0, 2) = 
anombre 


Case Else 
MsgBox "Necesitas la clave correcta.", , "Clave rechazada..." 
Cancel = True 
End Select 

End Sub
 

Excel Facts

Select all contiguous cells
Pressing Ctrl+* (asterisk) will select the "current region" - all contiguous cells in all directions.
DanielP:

Después de unas pequeñas modificaciones a tu código, parece que funciona bien. Tanteá el código modificado siguiente, en el cual mis cambios los prefijo con ''':

Code:
Sub Workbook_BeforePrint()
'''Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim anombre As String
Dim hojaa As Object

For Each hojaa In ActiveWindow.SelectedSheets
  anombre = anombre & "," & hojaa.Name
  'Exit For
Next

'Si hay varias hojas seleccionadas se van a imprimir todas ellas.
'En la variable "anombre" se memorizan los nombres de todas esas

'***Tuve que agregar ' delante de la línea siguiente:
'hojas seleccionadas (que se imprimen)
'---------------

'***Tuve que hacer una sola línea de dos:
Select Case InputBox("Indica por favor tu clave de acceso.", "Privilegios del impresor...")

  'Aquí indica la clave tuya y la clave de la persona a la que
'***Tuve que agregar ' delante de las dos líneas siguientes:
  'autorices. La persona autorizada sólo conoce su clave: por ejemplo
  '"clave222"; no conoce tu clave.

Case "clave111", "clave222"
  MsgBox "Clave aceptada. Iniciando proceso..."

  'Aquí registrará en la Hoja7, en la columna "A", y en la
  'primera fila que encuentre libre, el nombre de la hoja activa que será la que
'***Tuve que agregar ' delante de la línea siguiente:
  'se imprime
  'y en la misma fila y siguiente columna te registrará el dia y
'***Tuve que agregar ' delante de la línea siguiente:
  'la hora de la impresión.

'***Tuve que hacer una sola línea de dos:
  Sheets("Hoja7").Range("A45000").End(xlUp).Offset(1, 0) = ActiveSheet.Name
  Sheets("Hoja7").Range("A45000").End(xlUp).Offset(0, 1) = Now

  'aquí se anotan las hojas selecionadas por ejemplo: "
'***Tuve que agregar ' delante de la línea siguiente:
  ',Hoja2,Hoja3,Hoja5"
'***Tuve que hacer una sola línea de dos:
  Sheets("Hoja7").Range("A45000").End(xlUp).Offset(0, 2) = anombre


Case Else
  MsgBox "Necesitas la clave correcta.", , "Clave rechazada..."
  Cancel = True
End Select

End Sub
[/code]
 
Upvote 0
Problema con el codigo de control de impresión en un libro

Hola Ralph sobre la macro nueva que has enviado tengo el sgte. problema

cuando quiero imprimir la hoja me sale el sgte. mensaje

Error de Compilación:
La declaración del procedimiento no coincide con la descripción del evento o el procedimiento que tiene el mismo nombre.

y se resalta la sgte. linea del codigo
Sub Workbook_BeforePrint

Si gustas te mando el archivo a tu correo ya que no veo la opción de poner el archivo de muestra.

Mi correo personal es ldpc4arrobayahoo.com

<hr />
17.07.07: Dirección de correo-e editado por Greg para cambiar la arroba del símbolo a la palabra para evitar que los "bots" agarren la dirección de Daniel. :wink:
 
Upvote 0

Forum statistics

Threads
1,223,965
Messages
6,175,660
Members
452,666
Latest member
AllexDee

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