Ejecutar una macro al cambiar valor de una celda

Sucede que en una hoja de Excel 2007 tengo un grupo de celdas en donde he validado cada una para que me permita elegir valores de una lista, la idea es que cuando seleccione un item de la lista me escriba automáticamente a través de una macro en una celda a la derecha, el valor del elemento seleccionado, es decir, si el elemento es procesador, escriba al frente el valor 250000.
La cuestión es que me escribe el valor del elemento cuando cambio de celda y no cuando cambio de elemento en la lista.
Me gustaría que me ayudaran a que la macro me escriba el valor del elemento al momento de seleccionar un elemento de la lista. El código es siguiente:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  f1 = 2
  f2 = 10
  For i = f1 To f2
    Select Case Cells(i, 1).Value
      Case "PROCESADOR"
        valor = 215000
      Case "MEMORIA RAM"
        valor = 60000
      Case "BOARD"
        valor = 170000
      Case Else
        valor = 0
    End Select
    Cells(i, 2).Value = valor
  Next i
End Sub

1 Respuesta

Respuesta
1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Este evento se Activa precisamente al "Cambiar" la celda "Target", solo quítale el Selection así:
Así se Activara al Modificar la Celda "Target"
Gracias amigo, estuve probando pero no me funciona tu solución ya que al cambiar la celda se me convierte en un ciclo infinito y me sale el siguiente error: Error en el método 'Value' de objeto 'Range', y se me bloquea Excel por lo que debo cerrarlo por la fuerza.
Private Sub Worksheet_Change(ByVal Target As Range)
Set Isect = Intersect(Target, Range("A1:A10"))
If Not Isect Is Nothing Then
    If Target.Address = Isect.Address Then
        Select Case Target.Value
            Case "PROCESADOR"
            valor = 215000
            Case "MEMORIA RAM"
            valor = 60000
            Case "BOARD"
            valor = 170000
            Case Else
            valor = 0
        End Select
        Cells(Target.Row, 2).Value = valor
    End If
End If
End Sub
Pruébalo y me avisas como te fue

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas