Excel - lanzar formulario.

   
Vista:

lanzar formulario.

Publicado por Pablo (40 intervenciones) el 26/08/2014 08:20:49
Tengo una hoja a la que llamo Nota de Gastos.
Cuando alguien sobrepasa el límite de un concepto, la celda correspondiente se pone de color naranja. (Formato condicional).
Me gustaría que se abriera un formulario en ese momento, cuando la celda sobrepasa el valor y se vuelve naranja.
Y esto ocurre en un rango de celdas.
Es decir, es como una especie de formato condicional.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Oscar

lanzar formulario.

Publicado por Oscar (7 intervenciones) el 26/08/2014 08:27:41
El excel lo rellenas a mano o lo cargas con una macro?
Por otro lado el valor de las celdas que cambian de color es calculado o se ingresa (ya sea a mano o con macro)?
El formulario lo tiene ya hecho o tienes que hacerlo?

Lo más sencillo es usar el evento worksheet_change y cada vez que se modifica un valor en la hoja comprueba que no haya excedido de un valor dado (eso hay que programarlo aunque es muuuy sencillo) despues si ha sobrepasado el valor y tiene ya el formulario creado con ponerle el valor visible = True es suficiente.


Si tienes alguna duda pregunta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

lanzar formulario.

Publicado por Pablo (40 intervenciones) el 26/08/2014 21:07:00
Perfecto,
Voy a jugar con worksheet_change a ver qué consigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[RESPUESTA] lanzar formulario.

Publicado por Pablo (40 intervenciones) el 27/08/2014 10:15:54
He llegado a esta solución, que pongo aquí para mi consulta (luego se me olvida dónde pongo las cosas en mi pc).
Gracias Oscar por tu sugerencia.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'Recuerda que este código va en el objeto de la página que lo usa.
Private Sub worksheet_change(ByVal Target As Range)
On Error Resume Next
 
'Esto permite seleccionar un rango de celdas y borrar su contenido sin que aparezca el formulario
If Target.Cells.Count > 1 Then Exit Sub
 
If Not Intersect(Target, Range("D9:D18")) Is Nothing Then
    Select Case Target
        Case Is > 3
        UserForm1.Show
    End Select
End If
 
If Not Intersect(Target, Range("E9:E18")) Is Nothing Then
    Select Case Target
        Case Is > 15
        UserForm1.Show
    End Select
End If
 
If Not Intersect(Target, Range("F9:F18")) Is Nothing Then
    Select Case Target
        Case Is > 22
        UserForm1.Show
    End Select
End If
 
'Para el rango G9:G18 lo importante es que la suma no supere 10. La totalizo en G19
If [G19].Value > 10 Then
    UserForm1.Show
End If
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar