Asistente de Office

03/10/2006 - 22:02 por DOORS | Informe spam
Buenas tardes,

Amigos, tengo una hoja que es una orden de pago, los usuarios tienen un
maximo de 40.0000 para realizar las compras. Tengo un código que lo que hace
es llamarme al asistente en el momento de que el monto que esta en la celda
L17 se pase o sea igual a 40.000. El código que tengo en el módulo es este:

Sub Mensaje_temporal()
If Terminar Then Exit Sub
With Assistant.NewBalloon
.BalloonType = msoBalloonTypeBullets
.Animation = msoAnimationListensToComputer
.Animation = msoAnimationEmptyTrash
.Icon = msoIconTip
.Button = msoButtonSetOK
.Heading = "F-098"
.Labels(1).Text = "El monto máximo de pago es 40.000"
.Show
End With
Call ocultar
End Sub

Lo llamo desde ThisWorkbook con el siguiente código:

Private Sub ActiveWorkbook()
With ThisWorkbook.Worksheets("F-029").Range("L17")
If .Value = "0.00" Then
Call Mostrar
Call Mensaje_temporal
.Parent.Activate
.Select
End If
End With
End Sub

Pero no me funciona, alguien me puede ayudar??

GRACIAS!!!!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
04/10/2006 - 07:50 | Informe spam
hola, DOORS !

... una hoja que es una orden de pago, los usuarios tienen un maximo de 40.0000 para realizar las compras
... ... llamarme al asistente en el momento de que el monto que esta en la celda L17 se pase o sea igual a 40.000



1) no se 'de donde sacaste/obtuviste/inventaste/...' el procedimiento: -> Private Sub ActiveWorkbook() ???

2) la primera instruccion en el procedimiento 'Mensaje_temporal': -> If Terminar Then Exit Sub
[supongo que]... se habra quedado de llamadas a procedimientos 'OnTime' anteriores -?-

3) procura utilizar UNA SOLA instruccion: -> .Animation = ???

4) prueba con el siguiente codigo... -> en el modulo de 'la hoja' donde tienes el formato de orden de pago...

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("l17") <= 40000 Then Exit Sub
With Assistant.NewBalloon
.Heading = "F-098"
.Text = "El monto maximo de pago es 40.000"
.Button = msoButtonSetOK
.BalloonType = msoBalloonTypeButtons
.Mode = msoModeModal ' msoModeAutoDown
.Animation = msoAnimationEmptyTrash
.Show
End With
Application.Undo
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
El codigo que tengo en el modulo es este:
Sub Mensaje_temporal()
If Terminar Then Exit Sub
With Assistant.NewBalloon
.BalloonType = msoBalloonTypeBullets
.Animation = msoAnimationListensToComputer
.Animation = msoAnimationEmptyTrash
.Icon = msoIconTip
.Button = msoButtonSetOK
.Heading = "F-098"
.Labels(1).Text = "El monto maximo de pago es 40.000"
.Show
End With
Call ocultar
End Sub

Lo llamo desde ThisWorkbook con el siguiente codigo:

Private Sub ActiveWorkbook()
With ThisWorkbook.Worksheets("F-029").Range("L17")
If .Value = "0.00" Then
Call Mostrar
Call Mensaje_temporal
.Parent.Activate
.Select
End If
End With
End Sub

Pero no me funciona...
Respuesta Responder a este mensaje
#2 DOORS
04/10/2006 - 16:09 | Informe spam
Saludos,

HECTOR MUCHAS GRACIAS POR TU AYUDA ME FUNCIONO EXCELENTE !!! : ), la unica
consulta que me queda es que si se autoriza un monto mayor , la celda no me
deja cambiarlo , se podría hacer algo al respecto ?, por decirte algo , el
mensaje diria que si es mas de 40 000 tiene que estar autorizado por la
gerencia.

TE LO AGRADEZCO MUCHO!!!
GRACIAS!!!!!

"Héctor Miguel" wrote:

hola, DOORS !

> ... una hoja que es una orden de pago, los usuarios tienen un maximo de 40.0000 para realizar las compras
> ... ... llamarme al asistente en el momento de que el monto que esta en la celda L17 se pase o sea igual a 40.000

1) no se 'de donde sacaste/obtuviste/inventaste/...' el procedimiento: -> Private Sub ActiveWorkbook() ???

2) la primera instruccion en el procedimiento 'Mensaje_temporal': -> If Terminar Then Exit Sub
[supongo que]... se habra quedado de llamadas a procedimientos 'OnTime' anteriores -?-

3) procura utilizar UNA SOLA instruccion: -> .Animation = ???

4) prueba con el siguiente codigo... -> en el modulo de 'la hoja' donde tienes el formato de orden de pago...

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("l17") <= 40000 Then Exit Sub
With Assistant.NewBalloon
.Heading = "F-098"
.Text = "El monto maximo de pago es 40.000"
.Button = msoButtonSetOK
.BalloonType = msoBalloonTypeButtons
.Mode = msoModeModal ' msoModeAutoDown
.Animation = msoAnimationEmptyTrash
.Show
End With
Application.Undo
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
> El codigo que tengo en el modulo es este:
> Sub Mensaje_temporal()
> If Terminar Then Exit Sub
> With Assistant.NewBalloon
> .BalloonType = msoBalloonTypeBullets
> .Animation = msoAnimationListensToComputer
> .Animation = msoAnimationEmptyTrash
> .Icon = msoIconTip
> .Button = msoButtonSetOK
> .Heading = "F-098"
> .Labels(1).Text = "El monto maximo de pago es 40.000"
> .Show
> End With
> Call ocultar
> End Sub
>
> Lo llamo desde ThisWorkbook con el siguiente codigo:
>
> Private Sub ActiveWorkbook()
> With ThisWorkbook.Worksheets("F-029").Range("L17")
> If .Value = "0.00" Then
> Call Mostrar
> Call Mensaje_temporal
> .Parent.Activate
> .Select
> End If
> End With
> End Sub
>
> Pero no me funciona...



Respuesta Responder a este mensaje
#3 Héctor Miguel
04/10/2006 - 23:23 | Informe spam
hola, DOORS 1

... la unica consulta que me queda es que si se autoriza un monto mayor, la celda no me deja cambiarlo
se podria hacer algo al respecto ?, por decirte algo
el mensaje diria que si es mas de 40 000 tiene que estar autorizado por la gerencia.



a reserva de algunos otros 'detalles', se me ocurre que podrias hacer algo +/- como lo siguiente:

1) lanzar un inputbox preguntando por alguna 'clave de autorizacion'
[necesitaras algun sistema de 'verificacion' y claves 'unicas' ?]

2) depositar dicha autorizacion en alguna celda [preferentemente oculta]

3) hacer un by-pass al asistente para que si 'dicha' celda NO esta vacia... no aparezca [el asistente]

4) [obviamente] deberas borrar cualquier dato en 'dicha' celda cuando inicies una captura nueva -?-

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida