VBA Excel, guardar antes de imprimir

07/06/2010 - 19:49 por Saga | Informe spam
Saludos! No se si este sea el mejor foro para esta pregunta.
Fui a microsoft.public.es.vba pero casi no tiene actividad. Si
me recomiendan alguno (ingles o español) no hay problema.

Un conocido esta programando en Excel 2003 y tiene una hoja
donde el usuario captura datos de un recibo. Cuando haya
terminado la captura, da clic a un boton que los copia a
otra hoja dentro del mismo libro. Lo que él quiere es que
el usuario no pueda imprimir hasta que haya dado clic al
boton para guardar. El codigo que tiene en el evento de
clic del boton es el siguiente:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
'Copia datos a hoja BD2
Sheets("BD2").Unprotect
With Sheets("BD2").Range("A1000").End(xlUp)

.Offset(1, 0) = Sheets("lid Gris").Range("I17") 'Poliza
.Offset(1, 4) = Sheets("lid Gris").Range("G12") 'Vig de
.Offset(1, 5) = Sheets("lid Gris").Range("I12") 'Vig a
.Offset(1, 6) = Sheets("lid Gris").Range("C59") 'Codigo Seguridad
.Offset(1, 9) = Sheets("lid Gris").Range("C19") 'Nombre
.Offset(1, 10) = Sheets("lid Gris").Range("C20") 'Domicilio
.Offset(1, 11) = Sheets("lid Gris").Range("C21") 'Colonia
.Offset(1, 12) = Sheets("lid Gris").Range("C22") 'Ciudad
.Offset(1, 13) = Sheets("lid Gris").Range("F21") 'C.P.
.Offset(1, 14) = Sheets("lid Gris").Range("F22") 'Telefono
.Offset(1, 15) = Sheets("lid Gris").Range("C28") 'Marca
.Offset(1, 16) = Sheets("lid Gris").Range("E28") 'Modelo
.Offset(1, 17) = Sheets("lid Gris").Range("I28") 'Placas
.Offset(1, 18) = Sheets("lid Gris").Range("C31") 'Serie
.Offset(1, 19) = Sheets("lid Gris").Range("E31") 'Motor
.Offset(1, 20) = Sheets("lid Gris").Range("I52") 'Precio

End With
Sheets("BD2").Unprotect

'Confirma el registro, puede eliminarse
MsgBox "REGISTRADO", vbOKOnly, "CAPTURADO"

Sheets("lid Gris").Unprotect
Application.ScreenUpdating = True

End Sub

¿Que se le puede recomendar para tener esta funcionalidad?
Gracias, Saga
 

Leer las respuestas

#1 aa
08/06/2010 - 00:24 | Informe spam
Tiene que controlarlo en
Private Sub Workbook_BeforePrint(Cancel As Boolean)

End Sub
"Saga" wrote in message
news:hujbfr$uij$
Saludos! No se si este sea el mejor foro para esta pregunta.
Fui a microsoft.public.es.vba pero casi no tiene actividad. Si
me recomiendan alguno (ingles o español) no hay problema.

Un conocido esta programando en Excel 2003 y tiene una hoja
donde el usuario captura datos de un recibo. Cuando haya
terminado la captura, da clic a un boton que los copia a
otra hoja dentro del mismo libro. Lo que él quiere es que
el usuario no pueda imprimir hasta que haya dado clic al
boton para guardar. El codigo que tiene en el evento de
clic del boton es el siguiente:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
'Copia datos a hoja BD2
Sheets("BD2").Unprotect
With Sheets("BD2").Range("A1000").End(xlUp)

.Offset(1, 0) = Sheets("lid Gris").Range("I17") 'Poliza
.Offset(1, 4) = Sheets("lid Gris").Range("G12") 'Vig de
.Offset(1, 5) = Sheets("lid Gris").Range("I12") 'Vig a
.Offset(1, 6) = Sheets("lid Gris").Range("C59") 'Codigo Seguridad
.Offset(1, 9) = Sheets("lid Gris").Range("C19") 'Nombre
.Offset(1, 10) = Sheets("lid Gris").Range("C20") 'Domicilio
.Offset(1, 11) = Sheets("lid Gris").Range("C21") 'Colonia
.Offset(1, 12) = Sheets("lid Gris").Range("C22") 'Ciudad
.Offset(1, 13) = Sheets("lid Gris").Range("F21") 'C.P.
.Offset(1, 14) = Sheets("lid Gris").Range("F22") 'Telefono
.Offset(1, 15) = Sheets("lid Gris").Range("C28") 'Marca
.Offset(1, 16) = Sheets("lid Gris").Range("E28") 'Modelo
.Offset(1, 17) = Sheets("lid Gris").Range("I28") 'Placas
.Offset(1, 18) = Sheets("lid Gris").Range("C31") 'Serie
.Offset(1, 19) = Sheets("lid Gris").Range("E31") 'Motor
.Offset(1, 20) = Sheets("lid Gris").Range("I52") 'Precio

End With
Sheets("BD2").Unprotect

'Confirma el registro, puede eliminarse
MsgBox "REGISTRADO", vbOKOnly, "CAPTURADO"

Sheets("lid Gris").Unprotect
Application.ScreenUpdating = True

End Sub

¿Que se le puede recomendar para tener esta funcionalidad?
Gracias, Saga

Preguntas similares