Saltar al contenido

Indicar las veces que se ha editado una celda

publicado

Hola,

Adjunto un archivo con una pequeña macro que indica las veces que se ha editado el texto de la celda que indica la macro (A2 en el archivo). Se requiere una celda de control, para contrastar los cambios realizados. No cuenta los cambios que dejan el texto igual.

Un saludo.

veces_editada_celda.xls

Featured Replies

publicado

Hola:

¡¡ Muy buen aporte !!

Aquí dejo otra forma de hacer lo mismo:

Private Sub Worksheet_Change(ByVal Target As Range)

'[B]Target [/B]contiene el rango de las celdas cambiadas
'Como ya estamos dentro de la [B]Hoja1[/B], no es necesario especificarla con el objeto [B]Range[/B]
'Preguntando en negativo nos ahorramos la sentencia [B]Else[/B]
'La sentencia [B]Exit Sub[/B] termina el procedimiento con lo que nos ahorramos la sentencia [B]GoTo [/B]y la etiqueta [B]fin[/B]:

If Target.Address(0, 0) = "A2" Then
If Not Target.Value = Range("B2").Value Then
Range("B2").Value = Target.Value
Range("C2").Value = Range("C2").Value + 1
End If
End If

End Sub
[/CODE]

Siempre es agradable comprobar que se añaden nuevos miembros a este apartado de [b]Aportes e Ideas[/b]

Saludos

publicado
  • Autor

Más corto como dice Macro Antonio, pero de Targets no tengo mucha idea a la hora de escribir, y lo más corto que se me ocurría era como lo hice yo.

De hecho, invirtiendo las dos líneas tras el Else, me hacía un extraño, en vez de sumar uno, sumaba 94 (¿?) y a veces según cómo lo pusiera me sumaba infinitamente hasta que le diera a ESC. Incluso me ha dado un par de errores de "pila" (ni idea tampoco).

Un placer aportar mi granito de arena ;)

publicado

Hola! Amigos. Me parece que la celda B1 no es necesaria.

Veamos una de las formas de mostrar por qué no lo es:

Private Sub Worksheet_Change(ByVal Target As Range)
Static oldText
If Target.Address <> "$A$2" Then Exit Sub
If oldText <> Target Then [c2] = 1 + [c2]: oldText = Target
End Sub[/PHP]

Ciertamente que los [b]Application.EnableEvents[/b] "brillan" por su ausencia... pero dejémoslo para otra oportunidad/consulta.

Saludos para ambos.

Cacho R

Archivado

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