Macro para detectar cambios en celda y copiar valores

Quisiera tener una Macro, que detecte un cambio en la columna F, la cual esta validada por una lista con los siguientes valores: "Apartado, Disponible, Vendido, Bloqueado", sí se selecciona "Apartado" o "Vendido" se tendría que copiar el valor que tengo en la columna AM, y pegar sólo el valor en la columna AN, en caso de que se cambie de "Apartado" o "Vendido" a "Disponible" el valor de la columna AN tendría que ser nulo o vacío " ".

Ojala me puedan ayudar porque no he podido lograrlo.

Saludos!

1 Respuesta

Respuesta
1

Confirmemos los detalles antes de desarrollar la macro:

Si se selecciona Apartado... se copia el valor de AM en AN ...(*)

Si se selecciona Disponible... se borra AN

Si se selecciona Vendido... se copia el valor de AM en AN

Si se selecciona Bloqueado ......(**)

Las preguntas son:

(*) ¿AM mantiene su valor?

(**) no indicas opción para Bloqueado.

Quedo a la espera de tus aclaraciones.

Hola, muchas gracias

(*) Sí, AM mantiene su valor el cual es una formula.

(**) Si se selecciona bloqueado, el valor tiene que ser nulo, igual a que si se seleccionara "Disponible".

Entrá al Editor de macros. Seleccioná con doble clic en el panel a tu izquierda, el objeto HOJA donde vayas a controlar la col F.

Allí copiá esto:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'controla cambios en col F
If Target.Column <> 6 Then Exit Sub
If Target.Value = "Apartado" Or Target.Value = "Vendido" Then
 'pega valor de AM
 Range("AM" & Target.Row).Copy
 Range("AN" & Target.Row).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Application.CutCopyMode = False
ElseIf Target.Value = "Disponible" Or Target.Value = "Bloqueado" Then
 'limpia AN
 Range("AN" & Target.Row) = ""
End If
End Sub

Probala y si todo queda resuelto, no olvides regresar y finalizar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas