Guardar hora permanentemente

07/04/2008 - 11:55 por Qandeal | Informe spam
Saludos al grupo.

Necesito guardar la hora de un momento determinado y no hay forma de
conseguirlo, a ver si alguien me puede ayudar.

El tema es que necesito guardar en D48 la hora en el momento en que la
celda F12 este ocupada.

Si en D48 pongo esta formula:
=SI(ESBLANCO(F12);"";AHORA())

Me pone la hora correcta del momento en que F12 esta ocupado, pero si
despues de guardar el libro excel y al cabo de un rato lo vuelvo a
abrir, me actualiza la hora en D48, cuando lo que necesito es que en
D48 tiene que quedar grabada la hora en que se ocupo la celda F12.

Por otro lado si en D48 pongo esta otra formaula:
=SI(ESBLANCO(F12);"";SI(D48="";AHORA();D48))

Que pienso deberia de hacer lo que yo quiero, resulta que me da un
error de "referencia circular" y no pone la hora en D48
saludos,
Qandeal

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
08/04/2008 - 02:47 | Informe spam
hola, 'anonimo/a' !

Necesito guardar la hora de un momento determinado y no hay forma de conseguirlo, a ver si alguien me puede ayudar.
El tema es que necesito guardar en D48 la hora en el momento en que la celda F12 este ocupada.
Si en D48 pongo esta formula: =SI(ESBLANCO(F12);"";AHORA())
Me pone la hora correcta del momento en que F12 esta ocupado, pero... me actualiza la hora en D48
cuando lo que necesito es que en D48 tiene que quedar grabada la hora en que se ocupo la celda F12.

Por otro lado si en D48 pongo esta otra formaula: =SI(ESBLANCO(F12);"";SI(D48="";AHORA();D48))
Que pienso deberia de hacer lo que yo quiero, resulta que me da un error de "referencia circular" y no pone la hora en D48



- considera que el uso de formulas y funciones es (precisamente) para que reflejen datos "actualizados" al cambiar las condiciones
y las funciones como ahora() son "volatiles" y se actualizan cada vez que se (re)calcula tu modelo

- si necesitas que algun dato quede "fijo", sera mejor que no lo pongas "por formula", sino como dato "duro"...
para lo que podrias usar macros o la entrada manual de la fecha/hora en D48 cuando "se ocupe" F12

- comenta que debiera suceder cuando la celda F12 vuelva a quedar "desocupada"
(o cada vez que se vuelva a des/re/ocupar, ya que resulta confuso que en asunto pongas "permanentemente") -???-
es probable que se pueda ajustar alguno de los eventos en el modulo de codigo de "esa" hoja

saludos,
hector.
Respuesta Responder a este mensaje
#2 jsilva69
08/04/2008 - 19:36 | Informe spam
A ver si sirve esto...

Insertar en un nuevo módulo el siguiente código:

********************************************************

Option Explicit
Dim UltimoValorF12 As Variant
Dim UltimoValorD48 As Variant

Public Sub LeerValoresIniciales()

UltimoValorF12 = Worksheets(1).Cells(12, 6).Value
UltimoValorD48 = Worksheets(1).Cells(48, 4).Value

End Sub

Public Sub CheckearF12()

If Cells(12, 6) = "" Or IsNull(Cells(12, 6)) Then
' Skip
Else
If Cells(12, 6) = UltimoValorF12 Then
Cells(48, 4) = UltimoValorD48
Else
Cells(48, 4) = Format(Now(), "hh:mm:ss")
UltimoValorD48 = Worksheets(1).Cells(48, 4).Value
UltimoValorF12 = Worksheets(1).Cells(12, 6).Value
End If
End If

End Sub

********************************************************

y los siguientes metodos:

********************************************************

Private Sub Workbook_Open()

Call LeerValoresIniciales

End Sub

********************************************************

Private Sub Worksheet_Calculate()

Call CheckearF12

End Sub

********************************************************

Este codigo modifica el valor de D48 cada vez que se modifica el valor
en F12... salvo que quede vacio, donde mantiene el ultimo valor
almacenado.

Espero que te sirva.

Julio.


On 7 abr, 21:47, "Héctor Miguel"
wrote:
hola, 'anonimo/a' !

> Necesito guardar la hora de un momento determinado y no hay forma de conseguirlo, a ver si alguien me puede ayudar.
> El tema es que necesito guardar en D48 la hora en el momento en que la celda F12 este ocupada.
> Si en D48 pongo esta formula: =SI(ESBLANCO(F12);"";AHORA())
> Me pone la hora correcta del momento en que F12 esta ocupado, pero... me actualiza la hora en D48
> cuando lo que necesito es que en D48 tiene que quedar grabada la hora en que se ocupo la celda F12.

> Por otro lado si en D48 pongo esta otra formaula: =SI(ESBLANCO(F12);"";SI(D48="";AHORA();D48))
> Que pienso deberia de hacer lo que yo quiero, resulta que me da un error de "referencia circular" y no pone la hora en D48

- considera que el uso de formulas y funciones es (precisamente) para que reflejen datos "actualizados" al cambiar las condiciones
y las funciones como ahora() son "volatiles" y se actualizan cada vez que se (re)calcula tu modelo

- si necesitas que algun dato quede "fijo", sera mejor que no lo pongas "por formula", sino como dato "duro"...
para lo que podrias usar macros o la entrada manual de la fecha/hora en D48 cuando "se ocupe" F12

- comenta que debiera suceder cuando la celda F12 vuelva a quedar "desocupada"
(o cada vez que se vuelva a des/re/ocupar, ya que resulta confuso que en asunto pongas "permanentemente") -???-
es probable que se pueda ajustar alguno de los eventos en el modulo de codigo de "esa" hoja

saludos,
hector.
Respuesta Responder a este mensaje
#3 Qandeal
19/04/2008 - 07:11 | Informe spam
On Mon, 7 Apr 2008 19:47:11 -0500, "Héctor Miguel"
wrote:

hola, 'anonimo/a' !

Necesito guardar la hora de un momento determinado y no hay forma de conseguirlo, a ver si alguien me puede ayudar.
El tema es que necesito guardar en D48 la hora en el momento en que la celda F12 este ocupada.
Si en D48 pongo esta formula: =SI(ESBLANCO(F12);"";AHORA())
Me pone la hora correcta del momento en que F12 esta ocupado, pero... me actualiza la hora en D48
cuando lo que necesito es que en D48 tiene que quedar grabada la hora en que se ocupo la celda F12.

Por otro lado si en D48 pongo esta otra formaula: =SI(ESBLANCO(F12);"";SI(D48="";AHORA();D48))
Que pienso deberia de hacer lo que yo quiero, resulta que me da un error de "referencia circular" y no pone la hora en D48



- considera que el uso de formulas y funciones es (precisamente) para que reflejen datos "actualizados" al cambiar las condiciones
y las funciones como ahora() son "volatiles" y se actualizan cada vez que se (re)calcula tu modelo

- si necesitas que algun dato quede "fijo", sera mejor que no lo pongas "por formula", sino como dato "duro"...
para lo que podrias usar macros o la entrada manual de la fecha/hora en D48 cuando "se ocupe" F12

- comenta que debiera suceder cuando la celda F12 vuelva a quedar "desocupada"
(o cada vez que se vuelva a des/re/ocupar, ya que resulta confuso que en asunto pongas "permanentemente") -???-
es probable que se pueda ajustar alguno de los eventos en el modulo de codigo de "esa" hoja

saludos,
hector.




Hola Hector y gracias por tu respuesta.

Diculpa la tardanza en mi respuesta, estaba de viaje.

Bien, solo alcararte que no es factible poner la hora manualmente en
D48 cuando se ocupe F12 ya que se trata de una hoja que utilizan
varias personas y posiblemente se olvidarian de hacerlo.

Y en cuanto a que deberia suceder cuando la celda F12 vuelva a quedar
desocupada, pues es que nunca vuelve a quedar desocupada, y me
explico.

Se trata de una hoja que refleja resultados de una competicion
deportiva y una vez completada, es guardada para siempre, en la
proxima competecion se vuelve a coger lo que llamamos plantilla, que
no es otra cosa que la hoja en blanco con todas las formulas.
saludos,
Qandeal
Respuesta Responder a este mensaje
#4 Qandeal
19/04/2008 - 07:30 | Informe spam
On Tue, 8 Apr 2008 10:36:52 -0700 (PDT), jsilva69
wrote:

A ver si sirve esto...

Insertar en un nuevo módulo el siguiente código:

********************************************************

Option Explicit
Dim UltimoValorF12 As Variant
Dim UltimoValorD48 As Variant

Public Sub LeerValoresIniciales()

UltimoValorF12 = Worksheets(1).Cells(12, 6).Value
UltimoValorD48 = Worksheets(1).Cells(48, 4).Value

End Sub

Public Sub CheckearF12()

If Cells(12, 6) = "" Or IsNull(Cells(12, 6)) Then
' Skip
Else
If Cells(12, 6) = UltimoValorF12 Then
Cells(48, 4) = UltimoValorD48
Else
Cells(48, 4) = Format(Now(), "hh:mm:ss")
UltimoValorD48 = Worksheets(1).Cells(48, 4).Value
UltimoValorF12 = Worksheets(1).Cells(12, 6).Value
End If
End If

End Sub

********************************************************

y los siguientes metodos:

********************************************************

Private Sub Workbook_Open()

Call LeerValoresIniciales

End Sub

********************************************************

Private Sub Worksheet_Calculate()

Call CheckearF12

End Sub

********************************************************

Este codigo modifica el valor de D48 cada vez que se modifica el valor
en F12... salvo que quede vacio, donde mantiene el ultimo valor
almacenado.

Espero que te sirva.

Julio.



Hola Julio,

He probado con esto y funciona a medias, o no lo he hecho bien.

Este codigo para que actue tengo que ejecutar una macro manualmente,
salvo que como digo algo no este bien.

Y por otra parte solo actua en una de las tres hojas de las que consta
el libro.
saludos,
Qandeal
Respuesta Responder a este mensaje
#5 Héctor Miguel
19/04/2008 - 08:07 | Informe spam
hola, (...) ???

... no es factible poner la hora manualmente en D48 cuando se ocupe F12
... se trata de una hoja que utilizan varias personas y posiblemente se olvidarian de hacerlo.
... la celda F12... nunca vuelve a quedar desocupada, y me explico.
... una hoja que refleja resultados de una competicion... y una vez completada, es guardada para siempre
en la proxima... se vuelve a coger... plantilla, que no es otra cosa que la hoja en blanco con todas las formulas...



1) debido a la poca informacion y detalles en tu consulta original, Julio "tuvo que" imaginar/suponer/inventar/... algunas eventualidades...
como ya confirmaste, sus "supuestos" quedaron un poquitin "fuera" de TU realidad (y para no seguir "inventando")...

2) seria conveniente si comentas cualquier otro detalle que estes "dejando en el tintero" (p.e.)
- se trata SOLAMENTE de la celda D48 y SOLAMENTE cuando se ocupe la celda F12 -???-
- si se trata de varios "grupos" (o parejas) de celdas entre las columnas D y F -> comenta los rangos exactos
- si necesitas que se actue en 3 hojas del libro... confirma que el libro tiene SOLAMENTE esas 3 hojas -???-
(o comenta cuales son los nombres de las hojas que sean "aplicables" para este procedimiento)
- si hubiera mas "detalles en el tintero"... (creo que) es hora de "sacarlos a la luz" :))

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida