Excel - Eventos de uno en uno (ok)

   
Vista:

Eventos de uno en uno (ok)

Publicado por Bruno (4 intervenciones) el 01/11/2007 23:53:51
Hola a todos,
En primer lugar perdonad por la nota anterior, pero el ratón del portatil me ha jugado una mala pasada.

Acabo de descubrir los eventos de VB para excel, y me estoy encontrando con algún que otro problema que supongo que no tiene que ser muy complicado de resolver.
He generado un código que, en función del campo que de un desplegable de validación, ejecuta una u otra macro.

El código es algo así.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim VRange As Range
Set VRange = Range("c7")
If Intersect(VRange, Target) Is Nothing Then
Exit Sub
End If
If [c7] = "" Then
Call Macro1
Range("c7").Select
End If
If [c7] = "SÍ" Then
Call Macro2
Range("c7").Select
End If
If [c7] = "NO" Then
Call Macro3
End If
End Sub

El problema es que no sé cómo reproducir esto con otra validación en la misma hoja sin que se vuelva a repetir toda la secuencia anterior, es decir, si elijo otro dato en la celda c45, que se ejecuten otras macros distintas sin que vuelvan a ejecutarse las anteriores.
Soy totalmente nuevo en esto de Visual Basic para Excel, así que os rogaría que, si podéis ayudarme, lo hagáis de forma que no sea demasiado complicada.
Muchas gracias.
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

RE:Eventos de uno en uno (ok)

Publicado por Fernando (231 intervenciones) el 02/11/2007 15:18:41
Por ejemplo amigo..... donde tienes los condicionales " If " puedes agregar tu siguiente condición (solo a modo de ejemplo), usando la instrucción " and " puedes ír restringiendo tus opciones antre un evento o tambien usando un " or ".

**************************************************************************************

If Intersect(VRange, Target) Is Nothing and [c45] = Empty Then
Exit Sub
End If

**************************************************************************************.

Saludos y Suerte,
Fernando
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

RE:Eventos de uno en uno (ok)

Publicado por José Luis (700 intervenciones) el 02/11/2007 17:12:51
La variable Target contiene los datos de la celda que se ha cambiado de forma que Target.Address tendría el dato p.ej. $B$45 si has cambiado algo de la celda B45.
Ahora bien, algo muy importante es evitar que el evento se llame así mismo si realizas un cambio en alguna de las celdas. Para ello tienes la instrucción
Application.EnableEvents = true ó false

Mira en http://www.lawebdelprogramador.com/news/mostrar_new.php?id=127&texto=Excel&n1=425321&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
tienes un ejemplo de cómo usarla.

Saludos
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

RE:Eventos de uno en uno (ok)

Publicado por Bruno (4 intervenciones) el 03/11/2007 01:44:47
Muchas gracias a los dos
Un saludo,
Bruno
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