Verificar cambios en una celda

Hola, tengo casi lista una macro que es para un archivo compartido0 en el cual rescato el quien, cuando, como y que cambios de hicieron, pero me falta lo más importante... Quier dejar registrado el cambio que se realizo en la celda ya sea por ejemplo "La celda A1 cambio de Xvalor a XXvalor" y no se como validarlo, agradeceré mucho su ayuda!
Saludos!

1 Respuesta

Respuesta
Eso ya te lo hace excel y es marcando la opción 'TrackChanges' cuando compartes un libro. Te deja elegir el nº de días que quieres guardar.
El problema que tienes con eso es que te va a quedar muy pesado el libro en poco tiempo y no va a ser manejable.
Es más sencillo incluirlo en un SourceSafe o simplemente versionar el libro cada vez que alguien lo edite.
Al final se vuelve inoperativo. Piensa que tienes que guardar para cada libro para cada hoja y para cada celda y para cada usuarios, las celdas, sus valores originales y los que han cambiado. Luego puedes hacer un proceso que elimine los que no han cambiado etc..
Pero todo esto es tiempo y espacio y programación.
Si puedes usa la opción nativa de Excel.
Hola, entiendo, pero mi idea es la macro para solamente guardar el cambio "La celda A1 cambio de Xvalor a XXvalor" nada más pero con un ActivveCell.Valur tomo el valor inicial, pero no se como tomar el nuevo valor, el resto del proceso ya lo tengo listo, me falta solo eso. Gracias
la formula Valor=activesheet.range.cells(1,1) te deberia devolver el valor del la A1
Revisa la sintaxis que la escribo de memoria.
Ok, pero eso me va a servir sólo para una celda en especifico... Mi idea es evaluar un rango y para cada cambio en alguna de sus celdas, cualquiera sea esta, quede registrado...
Te había entendido mal, creía que solo lo querías para la primera
Para evaluar nu rango haces un bucle como te indico abajo pero va a ser muy lento si el rango es grande.
For cRows=1 to Myrange.rows.count
for cCols=1 to Myrange.cols.count
'Aqui coges el valor
Valor=MyRange.Cells(Crows,Ccols)
,comparas y guardas lo que quieras .
next ccols
next crows
Otra opción que se me está ocurriendo. Es copiar la hoja a otra y 'ocultarla' así el usuario no la ve y siempre la puedes comparar en cualquier momento. De hecho creo que así es como lo hace Excel internamente.
Te refieres a que al abrir el libro copie todo de la hoja1 a la 2 por ejemplo, ¿y luego compare las coordenadas entre ambas hojas? ¿Y cómo hago un bucle para que copie todo de un lado a otro? Para no hacer una asignación directa... saludos!
Ya hice una macro que al abrir el libro copia todo lo de la hoja 1 a la 2. Ahora lo que pasa es que al momento de validar el cambio lo hace cuando me posiciono sobre la celda ya modificada, no cuando la modifico, adjunto código
 Valor1 = ActiveCell.Value
            Row1 = ActiveCell.Row
            Col1 = ActiveCell.Column
            coord1 = Row1 & Col1
            Val_res = Sheets("Respaldo").Cells(Row1, Col1).Value
            If Val_res <> Valor1 Then
miMacro...
Quizás tenga que hacer otra cosa, help!
Gracias
Me estoy perdiendo un poco.
¿Si lo que quieres es tener los dos valores del libro ( nuevo y antiguo) que más te da cuando ocurrieron?.
Quedate con el primer valor (cuando se abre) y valida el último (cuando salvas). Yo no me pondría a controlar todos los posibles cambios intermedios por que entonces el libro va a ser inmanejable y el usuario se va a volver loco.
De verdad plantéate usar el TrackChanges que no merece la pena reinventar la rueda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas