Saltar al contenido

Funcionamiento del evento worksheet_change

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.

Featured Replies

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
  • Autor

La macro la tengo en la hoja, pero creo que se tiene que llamar de alguna manera con un call dentro de la misma hoja.

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.