Historial de cambios realizados en una hoja de excel...

gusmario2011

New Member
Joined
Aug 4, 2011
Messages
27
Hola...

les traigo una tarea algo complicada... nececito una macro que me permita guardar todos los cambios realizados en una base de datos (historial), buscando en la red encontre algo muy interezante, que me cuenta que el excel 2007 tiene esa opcion en la pestaña "review", seleccionamos la opcion compartir y ahi podemos activar el historial de cambios, pero hay un inconveniente me niega la entrada a el visualbasic del excel, asi que me dirijo a ustedes los expertos en busca de soporte tecnico, ya sea con mas informacion de esto o con una pequeña macro que me guarde los cambios realiados en un rango "A3:M600" en una hoja llamada "historial", requiero que coloque la informacion descendiente con fecha, celda, el dato que se ingreso o borro, hora, etc...

Aguien que me auxilie por favor!!!...:(:(
 

Excel Facts

Is there a shortcut key for strikethrough?
Ctrl+S is used for Save. Ctrl+5 is used for Strikethrough. Why Ctrl+5? When you use hashmarks to count |||| is 4, strike through to mean 5.
cgcamal, perdona podrias ayudarme con este tema?, si desconoce del tema lo entiendo o si puede ayudarme con una macro?...

gracias...:rolleyes:
 
Upvote 0
Hola gusmario.

A ver si esto le puede ayudar.

1. Crear una hoja de cálculo y registrar el nombre historial
2. Poner este código en el módulo de Esta_pasta_de_trabajo


Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim LR As Long
If Sh.Name = "historial" Then Exit Sub
Application.EnableEvents = False
With Sheets("historial")
    LR = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A" & LR + 1).Value = Format(Now, "dd-mm-yy hh:mm:ss")
    .Range("B" & LR + 1).Value = Sh.Name
    .Range("C" & LR + 1).Value = Target.Address(False, False)
    .Range("D" & LR + 1).Value = Target.Value
    .Range("E" & LR + 1).Value = Environ("USERNAME")
End With
Application.EnableEvents = True
End Sub
si desea limitar los cambios históricos en el rango de "A3: M600", luego cambie la línea del codigo para:


Code:
If Sh.Name = "historial" Or Intersect(Target, Range("A3:M600")) Is Nothing Then Exit Sub
la historia de los cambios en las hojas de cálculo se dará a conocer en la hoja historial:
fecha y la hora en la columna A
nombre de la hoja de trabajo en B
dirección de la celda en la C
nuevo contenido de la celda en la D
usuario en E
 
Upvote 0
Que tal Huercos!...

Huercos = Plebes = Bukys = escuincles: Chamacos, Niños, Muchachos, Chicos "Mexico".

Chivolos: Niños "Peru".

Criankas: Niños "Brasil".

Bueno.... Pasa lo siguiente:

El codigo funciona excelente, pero ahora me piden que cada 3 meses, se pasen los datos con mas de 3 meses de antihuedad a una hoja que se llame "archivo muerto", e irse acumulando ahi, obvio que estos ya no deben de estar en el historial. Osvaldo podria ayudarme con esto?:eek:
 
Upvote 0
Hola ,por casualidad encontre tu peticion sobre el historial de cambios que solicitaste ,y es exactamente ´la ayuda que ando buscando ,nomas que no entendi las intruciones y codigos que te mostraron ,no me podria decir como introducir ese codigo o como usarlo por favor ,que tambien lo necesito mucho ,ojala y puedas ayudarme .
Hola gusmario.

A ver si esto le puede ayudar.

1. Crear una hoja de cálculo y registrar el nombre historial
2. Poner este código en el módulo de Esta_pasta_de_trabajo


Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim LR As Long
If Sh.Name = "historial" Then Exit Sub
Application.EnableEvents = False
With Sheets("historial")
    LR = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A" & LR + 1).Value = Format(Now, "dd-mm-yy hh:mm:ss")
    .Range("B" & LR + 1).Value = Sh.Name
    .Range("C" & LR + 1).Value = Target.Address(False, False)
    .Range("D" & LR + 1).Value = Target.Value
    .Range("E" & LR + 1).Value = Environ("USERNAME")
End With
Application.EnableEvents = True
End Sub
si desea limitar los cambios históricos en el rango de "A3: M600", luego cambie la línea del codigo para:


Code:
If Sh.Name = "historial" Or Intersect(Target, Range("A3:M600")) Is Nothing Then Exit Sub
la historia de los cambios en las hojas de cálculo se dará a conocer en la hoja historial:
fecha y la hora en la columna A
nombre de la hoja de trabajo en B
dirección de la celda en la C
nuevo contenido de la celda en la D
usuario en E
 
Upvote 0
Hola, Malosii.
El código anterior se debe instalar en el módulo EstaPasta_de_trabajo en el editor de VBA.
En primer lugar, asigne el nombre de "historial" (sin las comillas) a una hoja de cálculo vacía de su Pasta

Para instalar el código:
1. Copie el código de acá
2. en Excel, presione Alt + F11 para abrir el editor de VBA
3. en el lado izquierdo de la pantalla, haga doble clic en EstaPasta
4. Pega el código en la ventana en blanco que se abrirá
5. hecho! Alt + Q para volver a la hoja de cálculo y probarlo

operación - el código registrará automáticamente en la hoja de cálculo denominada "historial" todos los cambios en cualquier hoja de cálculo dela Pasta (excepto en la "historia")
 
Upvote 0
Disculpa la pregunta pero sabes por que me marca (historial es un nombre reservado?
Hola, Malosii.
El código anterior se debe instalar en el módulo EstaPasta_de_trabajo en el editor de VBA.
En primer lugar, asigne el nombre de "historial" (sin las comillas) a una hoja de cálculo vacía de su Pasta

Para instalar el código:
1. Copie el código de acá
2. en Excel, presione Alt + F11 para abrir el editor de VBA
3. en el lado izquierdo de la pantalla, haga doble clic en EstaPasta
4. Pega el código en la ventana en blanco que se abrirá
5. hecho! Alt + Q para volver a la hoja de cálculo y probarlo

operación - el código registrará automáticamente en la hoja de cálculo denominada "historial" todos los cambios en cualquier hoja de cálculo dela Pasta (excepto en la "historia")
 
Upvote 0
Pruebe a sustituir el nombre de "historial", por ejemplo, escriba "alligator".
No te olvides de sustituir también el nombre en el código.
 
Upvote 0

Forum statistics

Threads
1,214,606
Messages
6,120,488
Members
448,967
Latest member
visheshkotha

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top