none
Activar macro al momento de cambiar valor de una celda especídifca

    Question

  • Buenos dias/tardes/noches

    Tengo el siguiente dilema

    Deseo saber como puedo hacer para que al momento de ingresar el valor en una celda específica que se optiene de las variables Col Row. por ejemplo row=1 y col=3, entonces al cambiar la cells(1,3) se active una funcion vba.

    He visto la propiedad Worksheet_Change, pero ésta se activa al cambiar el valor en cualquier celda.

    Espero me puedan ayudar. de antemano muchas gracias
    Jaime Guerrero
    Analista Programador
    Lima - Perú

    Si la respuesta que te di te sirvio, no te olvides de votar ;)
    Thursday, June 04, 2009 2:10 PM

Answers

All replies

  • :-)
    Hola,

    No hay problema. Puedes utilizar este evento perfectamente, ya que te proporciona un parámetro Target que es el rango modificado.
    Puedes preguntar por la celda de este modo:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Cells.Count = 1 Then
            If Target.Row = 1 And Target.Column = 3 Then
                MsgBox "yea!"
            End If
        End If
    End Sub
    Saludos,

    No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)

    [MS-MVP-MCTS]

    Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
    NUG: http://andorradotnet.com
    Web: http://www.ordeeno.com
    Blog: http://msmvps.com/blogs/lfranco
    Geeks: http://geeks.ms/blogs/lfranco

    Thursday, June 18, 2009 11:38 AM
  • Muchas gracias Luis
    Jaime Guerrero
    Analista Programador
    Lima - Perú

    Si la respuesta que te di te sirvio, no te olvides de votar ;)
    Friday, June 19, 2009 5:37 PM
  • Estimado Luis, quisiera molestarle con una consulta sobre el mismo, ejecutar una macro si y solo si el dato de una celda (B7) se modifica.

    Esta sentencia es la que estoy utilizando

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$B$7" Then
       
        'AQUI BORRA TODOS LOS DATOS DE ESE CLIENTE
        Sheets("Scoring").Select
        ActiveWindow.SmallScroll Down:=-6
        Range("B9").Select
        Selection.ClearContents
        Range("I14:I273").Select
        Selection.ClearContents
        Range("B8").Select
    End If

    End Sub

    * PROBLEMAS QUE TENGO

    1. Se ejecuta siempre que se edita la celda B7, aunque el dato ingresado del cliente sea igual que el anterior, necesitaría que cuando se cambie por la misma información, no ejecute el macro de borrado, y se despliegue un message box "Ha ingresado la misma información", aceptar, y nada mas

    2. Cuando el dato ingresado es diferente, necesitaría ingresarle un message box que advierta que se esta modificando el nombre del cliente, con lo cual, los datos ingresados seran borrados, luego dar la opcion que el usuario elija si o no, si elige no, que vuelva al estado anterior y no haga nada mas, pero si dice que si, se ejecute la macro en cuestion.

    He mirado bastante en internet, pero sinceramente no he pudido lograr hasta ahora nada, aparentemente la secuencia no es muy compleja pero no me funciona.

    Gracias por la celeridad

    saludos cordiales desde Paraguay

    Thursday, November 08, 2012 11:19 AM