Nueva ayuda en Macro

14/06/2005 - 20:19 por BLACIO | Informe spam
Salu2 a toda la comunidad

Nuevamente su ayuda, tengo esta macro que la utilizo para imprimir un
reporte si este es menor a $25’000,000.00 y derivado de una ayuda en otra
macro, aproveche para que me mandara un mensaje de “Confirma por favor, sí el
importe es menor a $25 millones"


Sin embargo auque le de clic en el botón de cancelar, de todos modos me imprime
Y lo que quiero es que si hay que cancelar detenga la acción.





Esta es la macro que utilizo..

Sub Imprimir()
'
' Imprimir Macro
' Macro grabada el 10/06/2005 por Blacio
'

'
If MsgBox("Confirma por favor, sí el importe es menor a $25 millones", _
vbExclamation + vbOKCancel + vbDefaultButton2, _
"Esperando respuesta...") = vbOK Then _
Range("J64").Select
ActiveCell.FormulaR1C1 = "1"
ActiveWindow.SmallScroll Down:=-45
ActiveWindow.SelectedSheets.PrintOut Copies:=4, Collate:=True
Range("F21").Select
End Sub
 

Leer las respuestas

#1 Héctor Miguel
14/06/2005 - 21:28 | Informe spam
hola, BLACIO !

... macro que la utilizo para imprimir un reporte si este es menor a $25'000,000.00
... aproveche para que me mandara un mensaje de "Confirma por favor, si el importe es menor a $25 millones"
... aunque le de clic en el boton de cancelar, de todos modos me imprime [...]
Sub Imprimir()
If MsgBox("Confirma por favor, si el importe es menor a $25 millones", _
vbExclamation + vbOKCancel + vbDefaultButton2, _
"Esperando respuesta...") = vbOK Then _
Range("J64").Select
ActiveCell.FormulaR1C1 = "1"
ActiveWindow.SmallScroll Down:=-45
ActiveWindow.SelectedSheets.PrintOut Copies:=4, Collate:=True
Range("F21").Select
End Sub



la razon por la que de todos modos lanza la impresion, es porque [la linea d]el If ->se termina<- con el 'Range("J64").Select' :-(

op1: puedes 'condicionar' la macro para que SOLO imprima 'previa auto-verificacion' de que el importe es < 25' [p.e.]
Sub Imprimir()
If Range("donde verificar el importe") <= 25000000 Then _
ActiveWindow.SelectedSheets.PrintOut Copies:=4, Collate:=True
End Sub

op2: con las siguientes modificaciones =>cuida los saltos de linea<Sub Imprimir()
If MsgBox("Confirma por favor, si el importe es menor a $25 millones", _
vbExclamation + vbOKCancel + vbDefaultButton2, _
"Esperando respuesta...") = vbOK Then _
Range("J64") = 1: _
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

saludos,
hector.

p.d. [probablemente] no has 'observado' los caracteres [vba] de salto y/o continuacion de linea
=> _<= un espacio con un guion bajo = la linea de abajo es continuacion de 'esta' linea
=>: <= dos puntos con un espacio = la siguiente instruccion es -como- 'linea aparte' ;)

Preguntas similares