Excel - correr macro sin boton de acceso

 
Vista:

correr macro sin boton de acceso

Publicado por liliana (18 intervenciones) el 13/03/2013 16:19:00
Hola Buen Día

Estoy trabajando con una macro que me muestra un mensaje si se cumplen las siguientes condiciones: pero tengo una duda

Si el dato de la columna H es mayor a 1 muestra un mensaje y si es menor a -1 muestra otro mensaje, estos valores salen de sumar otras celdas

La macro ya me funciona (utilice un ejemplo de internet) pero no quiero poner un botón para correr esta macro, sino que cuando este ubicada en la hoja en la que utilizo la función se verifique la información por si sola, en este momento estoy colocando el codigo en ThisWorkbook y funciona bien, pero al cambiar de hoja en el mismo libro se sigue corriendo la macro hasta que se me bloquea el libro.


Como puedo correr la macro sin boton y donde debo ubicar la Función?

Adjunto codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 
 
 
 
If Range("H" & Target.Row).Value > 1 Then
Target.Activate
MsgBox "El ultimo movimiento registrado de este activo fue un Ingreso. Por favor verificar"
ActiveCell.ClearContents
End If
 
 
 
If Range("H" & Target.Row).Value < -1 Then
Target.Activate
MsgBox "El ultimo movimiento registrado de este activo fue un Ingreso. Por favor verificar"
ActiveCell.ClearContents
End If
 
End Sub



La ubique en la hoja en la que estoy corriendo la macro con el evento _calculate, pero ya no me funciona la macro

Gracias por su colaboración
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 JuanC

correr macro sin boton de acceso

Publicado por JuanC (1237 intervenciones) el 14/03/2013 15:37:35
En lugar de poner el código en ThisWorkbook, ponelo en Hoja1 (o la que corresponda)

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then  '//Columna H
   If Range("H" & Target.Row).Value > 1 Then
      Target.Activate
      MsgBox "El ultimo movimiento registrado de este activo fue un Ingreso. Por favor verificar"
      ActiveCell.ClearContents
   ElseIf Range("H" & Target.Row).Value < -1 Then
          Target.Activate
          MsgBox "El ultimo movimiento registrado de este activo fue un Ingreso. Por favor verificar"
          ActiveCell.ClearContents
   End If
End If
End Sub


Saludos, desde Baires, JuanC
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

correr macro sin boton de acceso

Publicado por liliana (18 intervenciones) el 15/03/2013 15:16:04
Hola Juan muchas gracias por tu pronta respuesta.
Pero probé lo que me dices y el código funciona solo si ingreso de forma manual el dato en la columna H, pero lo que yo necesito es que evalué el valor que toma esa columna después de una operación matemática. Que pena si no explique esa parte antes

EJ: H1= A1+B1

Gracias espero me puedas colaborar o alguien me pueda colaborar
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