Saltar al contenido

Funcionamiento del evento worksheet_change


axmug

Recommended Posts

publicado

Hola,

Quiero hacer una macro que cada vez que escriba en una celda, al cambiar de celda me borre una de las celdas repetidas. Para ello utilizo el evento Worksheet_Change, que por lo que entiendo, se ejecuta cuando se cambia de celda.

El problema que tengo es que no me ejecuta la macro. No me hace nada y tampoco hay ningún error.

Este es el código:

Public Sub Worksheet_Change(ByVal target As Range)

Dim f_max, c_max As Long

f_max = ActiveSheet.Cells.SpecialCells(xlLastCell).Row

Range("E" & Rows.Count).End(xlUp).Row

UltFila = Range("E" & UltFila + 1).Select

If (target = UltFila) Then

For f = 3 To f_max

For ff = 4 To f_max

If ActiveCell.Value = ActiveCell.Offset(ff, 0).Value Then ActiveCell.Offset(ff, 0).EntireRow.Delete

Next ff

ActiveCell.Offset(1, 0).Select

Next f

End If

End Sub

¿Como puedo ejecutar la macro?

Gracias.

publicado

La macro no se ejecuta porqué debe estar dentro de la hoja y lo mas probable es que esté en otro lugar.

En cualquier caso creo que tienes algún concepto equivocado, por ejemplo, esta instrucción daría error ya que debe ser asignada a una variable y no lo está:

Range("E" & Rows.Count).End(xlUp).Row[/CODE]

Sube un archivo con un ejemplo de lo que quieres hacer.

.

publicado

Algo estás haciendo mal.

Las macros de evento de hoja y libro, y por extensión al resto de objetos, se ejecutan de forma automática al producirse el evento.

En el adjunto verás un ejemplo del evento Change de la Hoja1.

Cambia el valor de cualquier celda y pulsa Enter o cualquier otra celda de dirección de flujo.

Vuelvo a insistir que subas un archivo explicando que es lo que quieres hacer.

Sheet_Change.xls

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.