Contar automáticamente cambios en rango de celdas

Buenos días,
Ante todo, daros las gracias ya que he aprendido bastante consultando estás páginas.
La cuestión que planteo es la siguiente: Tengo una hoja de cálculo donde necesito conocer los cambios que efectúo en cada fila y que sea secuencial. Por ejemplo, si en las celda A2 y en F2 hago algún cambio me indique en otra celda que he realizado 2 cambios. Y así sucesivamente cada vez que abra la hoja de cálculo.
Muchas gracias de antemano.
{"lat":35.4606699514953,"lng":-7.03125}

1 respuesta

Respuesta
1
Te dejo este código a ver si te sirve
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If UCase(Sh.Name) <> "Cambios" Then
        Sheets("Cambios").Activate
        Range("A1").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Value = "Se realizó un cambio en la celda " & Target.Address & " de la hoja " & Sh.Name
    End If
End Sub
Muchas gracias, me gustaría que me enviases el archivo a mi correo ([email protected]) y si pudieses me aclarases un poco el código pues no sé como usarlo, estoy un poco crudo en visual basic. Con el ejemplo que me envíes seguro que lo entenderé mejor.
Gracias de nuevo.
Listo ya te envié el archivo con ele ejemplo.
El evento SheetChange ocurre cada que Excel detecta un cambio y devuelve el nombre de la Hoja de cálculo y el rango de celdas afectadas. Aprovechando esta característica podemos almacenar las celdas que van cambiando usando el siguiente código.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
'Primero validamos que la hoja no sea la misma donde se almacenaran los cambios, esto es para prevenir que el código entre en un ciclo infinito.
If UCase(Sh.Name) <> "CAMBIOS" Then
<span style="white-space: pre;"> </span>'Activamos la hoja que almacena los cambios
        Sheets("Cambios").Activate 
<span style="white-space: pre;"> </span>'Movemos el cursor a la ultima fila de la columna A
        Range("A65536").Select 
<span style="white-space: pre;"> </span>'Movemos el cursor hacia arriba a la ultima fila con datos de la columna A
        Selection.End(xlUp).Select 
<span style="white-space: pre;"> </span>'Movemos el cursor a la siguiente fila vacía de la columna A
        ActiveCell.Offset(1, 0).Select 
<span style="white-space: pre;"> </span>'Agregamos una entrada con los datos de la Hoja y el rango de celdas que cambiaron
        ActiveCell.Value = "Se realizó un cambio en la celda " & Target.Address & " de la hoja " & Sh.Name 
    End If 
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas