Fijar fecha

27/09/2008 - 16:44 por Julián | Informe spam
En el día de ayer decidí probar con la solución aportada por Héctor Miguel,
porque significaría un avance en mis libros de cálculo. Sin embargo, me
encuentro con que el resultado es contrario a la explicación dada por Héctor,
en mi caso es igual que si hubiera utilizado HOY() o ahora(). Esto me hace
pensar que algo estoy haciendo mal, aunque no se lo que es.
Tengo Excel 2007. Hice lo siguiente:
1. Abrí un nuevo libro en el que en las celdas A1:A10 puse la función
indicada por Héctor, es decir: =SI(B4<>"";miFecha(B4))
2. Inserté un módulo general denominado miFecha, con el código copiado de la
respuesta de Héctor:
Function miFecha(Celda As Range) As Date
Volatile = False
miFecha = Now
End Function
3. En el libro de Excel tengo:

27/09/2008 12544
27/09/2008 2563
27/09/2008 1256
27/09/2008 456
FALSO
FALSO
4. La fecha que indicaba el libro, en el día de ayer, era el 26/09/2008 y
sin embargo hoy esa fecha está actualizada a la fecha del día, por lo que
supongo que mañana indicará la fecha de mañana y cada día la que corresponda.
¿Qué es lo que hago mal?

Saludos,
Julián.

Preguntas similare

Leer las respuestas

#1 Ivan
27/09/2008 - 23:04 | Informe spam
hola Julian,

mientras llega Hector, solo un par de apuntes:

a) comentarte que a mi me funciona perfectamente, es decir solo se
actualiza la fecha cuando se modifica el valor de las celdas-condicion

b) para asegurarte mejor en las pruebas dale un formato que incluya
los minutos y los segundos, Asi veras el cambio en cada instante y no
tendras que esperar al dia siguiente ara comprobarlo.

c) ¿no tendras formulas en dichas celdas que se recalculen
automaticamente y que cambien el contenido de dichas celdas al abrir
el libro o similar?

d) prueba a poner algo tipo a esto =SI(B8="";"";AHORA()) junto a la
funcion de Hector, Creo que notaras la diferencia


bueno, lo dicho, para que pruebes en tanto te dan otra respuesta

un saludo
Ivan
Respuesta Responder a este mensaje
#2 Héctor Miguel
28/09/2008 - 00:27 | Informe spam
hola, Julián !

es probable que la situacion que se te presenta se deba a tu comentario donde dices:
" 2. Inserte un modulo general denominado miFecha, con el codigo copiado de la respuesta de Hector"

por lo que deberas saber que vba encuentra "dificultades" (por no decir "no le gusta")
cuando un moudlo de codigo tiene el mismo nombre que algun procedimiento (sub o function) :-((

saludos,
hector.

__ OP __
En el dia de ayer decidi probar con la solucion aportada por Hector Miguel, porque significaria un avance en mis libros de calculo.
Sin embargo, me encuentro con que el resultado es contrario a la explicacion dada por Hector,
en mi caso es igual que si hubiera utilizado HOY() o ahora().
Esto me hace pensar que algo estoy haciendo mal, aunque no se lo que es.
Tengo Excel 2007. Hice lo siguiente:
1. Abri un nuevo libro en el que en las celdas A1:A10 puse la funcion indicada por Hector, es decir: =SI(B4<>"";miFecha(B4))
2. Inserte un modulo general denominado miFecha, con el codigo copiado de la respuesta de Hector:
Function miFecha(Celda As Range) As Date
Volatile = False
miFecha = Now
End Function
3. En el libro de Excel tengo:
27/09/2008 12544
27/09/2008 2563
27/09/2008 1256
27/09/2008 456
FALSO
FALSO
4. La fecha que indicaba el libro, en el dia de ayer, era el 26/09/2008 y sin embargo hoy esa fecha esta actualizada a la fecha del dia
por lo que supongo que manana indicara la fecha de manana y cada dia la que corresponda.
Que es lo que hago mal?
Respuesta Responder a este mensaje
#3 Julián
28/09/2008 - 01:10 | Informe spam
He cambiado el nombre varias veces; el resultado es el mismo. El último es:
Function miPrueba33(Celda As Range) As Date
Volatile = False
miPrueba33 = Now
End Function
En el libro de Excel se actualiza la fecha con la que tiene el ordenador.
¿cómo puedo hacer para que la fecha no cambie?
Saludos,
Julián.


"Héctor Miguel" escribió:

hola, Julián !

es probable que la situacion que se te presenta se deba a tu comentario donde dices:
" 2. Inserte un modulo general denominado miFecha, con el codigo copiado de la respuesta de Hector"

por lo que deberas saber que vba encuentra "dificultades" (por no decir "no le gusta")
cuando un moudlo de codigo tiene el mismo nombre que algun procedimiento (sub o function) :-((

saludos,
hector.

__ OP __
> En el dia de ayer decidi probar con la solucion aportada por Hector Miguel, porque significaria un avance en mis libros de calculo.
> Sin embargo, me encuentro con que el resultado es contrario a la explicacion dada por Hector,
> en mi caso es igual que si hubiera utilizado HOY() o ahora().
> Esto me hace pensar que algo estoy haciendo mal, aunque no se lo que es.
> Tengo Excel 2007. Hice lo siguiente:
> 1. Abri un nuevo libro en el que en las celdas A1:A10 puse la funcion indicada por Hector, es decir: =SI(B4<>"";miFecha(B4))
> 2. Inserte un modulo general denominado miFecha, con el codigo copiado de la respuesta de Hector:
> Function miFecha(Celda As Range) As Date
> Volatile = False
> miFecha = Now
> End Function
> 3. En el libro de Excel tengo:
> 27/09/2008 12544
> 27/09/2008 2563
> 27/09/2008 1256
> 27/09/2008 456
> FALSO
> FALSO
> 4. La fecha que indicaba el libro, en el dia de ayer, era el 26/09/2008 y sin embargo hoy esa fecha esta actualizada a la fecha del dia
> por lo que supongo que manana indicara la fecha de manana y cada dia la que corresponda.
> Que es lo que hago mal?



Respuesta Responder a este mensaje
#4 Héctor Miguel
28/09/2008 - 02:07 | Informe spam
hola, Julián !

He cambiado el nombre varias veces; el resultado es el mismo. El ultimo es:
Function miPrueba33(Celda As Range) As Date
Volatile = False
miPrueba33 = Now
End Function
En el libro de Excel se actualiza la fecha con la que tiene el ordenador.
como puedo hacer para que la fecha no cambie?



1) he creado un libro nuevo, le inserto un modulo estandar (Modulo1) con el codigo de la funcion

2) en la hoja1 uso la funcion en el rango A1:A10 -> =SI(B2<>"",miFecha(B2))
y en el rango C2:C10 uso la funcion: =AHORA()

3) en ambos rangos aplico un formato personaizado de: d/mm/aa h:mm

4) ingresando a intervalos de un minuto datos en el rango A2:A5 obtengo lo siguiente:
27/Sep/08 18:40 <-> 12 <-> 27/Sep/08 18:43
27/Sep/08 18:41 <-> 34 <-> 27/Sep/08 18:43
27/Sep/08 18:42 <-> 56 <-> 27/Sep/08 18:43
27/Sep/08 18:43 <-> 78 <-> 27/Sep/08 18:43
-> notaras que los rangos "previos" NO se modifican en su resultado ;)
-> guardo y cierro el libro... cambio la fecha del sistema (un dia mas)

5) vuelvo a abrir el libro... lo que obtengo es:
27/Sep/08 18:40 <-> 12 <-> 28/Sep/08 18:45
27/Sep/08 18:41 <-> 34 <-> 28/Sep/08 18:45
27/Sep/08 18:42 <-> 56 <-> 28/Sep/08 18:45
27/Sep/08 18:43 <-> 78 <-> 28/Sep/08 18:45
-> (nuevamente) notaras que los rangos "previos" NO se modifican en su resultado ;)

saludos,
hector.

__ OP __
es probable que la situacion que se te presenta se deba a tu comentario donde dices:
" 2. Inserte un modulo general denominado miFecha, con el codigo copiado de la respuesta de Hector"

por lo que deberas saber que vba encuentra "dificultades" (por no decir "no le gusta")
cuando un moudlo de codigo tiene el mismo nombre que algun procedimiento (sub o function) :-((

__ OP __
> En el dia de ayer decidi probar con la solucion aportada por Hector Miguel, porque significaria un avance en mis libros de calculo.
> Sin embargo, me encuentro con que el resultado es contrario a la explicacion dada por Hector,
> en mi caso es igual que si hubiera utilizado HOY() o ahora().
> Esto me hace pensar que algo estoy haciendo mal, aunque no se lo que es.
> Tengo Excel 2007. Hice lo siguiente:
> 1. Abri un nuevo libro en el que en las celdas A1:A10 puse la funcion indicada por Hector, es decir: =SI(B4<>"";miFecha(B4))
> 2. Inserte un modulo general denominado miFecha, con el codigo copiado de la respuesta de Hector:
> Function miFecha(Celda As Range) As Date
> Volatile = False
> miFecha = Now
> End Function
> 3. En el libro de Excel tengo:
> 27/09/2008 12544
> 27/09/2008 2563
> 27/09/2008 1256
> 27/09/2008 456
> FALSO
> FALSO
> 4. La fecha que indicaba el libro, en el dia de ayer, era el 26/09/2008 y sin embargo hoy esa fecha esta actualizada a la fecha del dia
> por lo que supongo que manana indicara la fecha de manana y cada dia la que corresponda.
> Que es lo que hago mal?
Respuesta Responder a este mensaje
#5 Servando
28/09/2008 - 07:40 | Informe spam
Espero reivindicarme por el error anotado en el anterior post.

Con este codigo no se actualiza la celda de la Col A si en esta ya hay algo.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
If Target.Offset(0, -1).Value = "" Then
Target.Offset(0, -1).Value = Date
End If
End If
End Sub

Con este codigo no importa si ya contiene algo, cada modificacion en la
celda de la columna B afectara la celda de la columna A.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Target.Offset(0, -1).Value = Date
End If
End Sub

Si interesa tambien la Hora de captura o modificacion, entonces hay que
cambiar "Date" por "Now", asi como el correspondiente formato en la celda.
Por favor, retroalimentanos y dinos si esto te fue de utilidad.

Saludos
Servando Villalon


"Héctor Miguel" wrote:

hola, Julián !

> He cambiado el nombre varias veces; el resultado es el mismo. El ultimo es:
> Function miPrueba33(Celda As Range) As Date
> Volatile = False
> miPrueba33 = Now
> End Function
> En el libro de Excel se actualiza la fecha con la que tiene el ordenador.
> como puedo hacer para que la fecha no cambie?

1) he creado un libro nuevo, le inserto un modulo estandar (Modulo1) con el codigo de la funcion

2) en la hoja1 uso la funcion en el rango A1:A10 -> =SI(B2<>"",miFecha(B2))
y en el rango C2:C10 uso la funcion: =AHORA()

3) en ambos rangos aplico un formato personaizado de: d/mm/aa h:mm

4) ingresando a intervalos de un minuto datos en el rango A2:A5 obtengo lo siguiente:
27/Sep/08 18:40 <-> 12 <-> 27/Sep/08 18:43
27/Sep/08 18:41 <-> 34 <-> 27/Sep/08 18:43
27/Sep/08 18:42 <-> 56 <-> 27/Sep/08 18:43
27/Sep/08 18:43 <-> 78 <-> 27/Sep/08 18:43
-> notaras que los rangos "previos" NO se modifican en su resultado ;)
-> guardo y cierro el libro... cambio la fecha del sistema (un dia mas)

5) vuelvo a abrir el libro... lo que obtengo es:
27/Sep/08 18:40 <-> 12 <-> 28/Sep/08 18:45
27/Sep/08 18:41 <-> 34 <-> 28/Sep/08 18:45
27/Sep/08 18:42 <-> 56 <-> 28/Sep/08 18:45
27/Sep/08 18:43 <-> 78 <-> 28/Sep/08 18:45
-> (nuevamente) notaras que los rangos "previos" NO se modifican en su resultado ;)

saludos,
hector.

__ OP __
>> es probable que la situacion que se te presenta se deba a tu comentario donde dices:
>> " 2. Inserte un modulo general denominado miFecha, con el codigo copiado de la respuesta de Hector"
>>
>> por lo que deberas saber que vba encuentra "dificultades" (por no decir "no le gusta")
>> cuando un moudlo de codigo tiene el mismo nombre que algun procedimiento (sub o function) :-((
>>
>> __ OP __
>> > En el dia de ayer decidi probar con la solucion aportada por Hector Miguel, porque significaria un avance en mis libros de calculo.
>> > Sin embargo, me encuentro con que el resultado es contrario a la explicacion dada por Hector,
>> > en mi caso es igual que si hubiera utilizado HOY() o ahora().
>> > Esto me hace pensar que algo estoy haciendo mal, aunque no se lo que es.
>> > Tengo Excel 2007. Hice lo siguiente:
>> > 1. Abri un nuevo libro en el que en las celdas A1:A10 puse la funcion indicada por Hector, es decir: =SI(B4<>"";miFecha(B4))
>> > 2. Inserte un modulo general denominado miFecha, con el codigo copiado de la respuesta de Hector:
>> > Function miFecha(Celda As Range) As Date
>> > Volatile = False
>> > miFecha = Now
>> > End Function
>> > 3. En el libro de Excel tengo:
>> > 27/09/2008 12544
>> > 27/09/2008 2563
>> > 27/09/2008 1256
>> > 27/09/2008 456
>> > FALSO
>> > FALSO
>> > 4. La fecha que indicaba el libro, en el dia de ayer, era el 26/09/2008 y sin embargo hoy esa fecha esta actualizada a la fecha del dia
>> > por lo que supongo que manana indicara la fecha de manana y cada dia la que corresponda.
>> > Que es lo que hago mal?



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida