Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Poner la fecha automática

5 views
Skip to first unread message

Lucia

unread,
Aug 23, 2006, 2:45:02 PM8/23/06
to
Hola, saludos. Tengo una pequeña tabla en la que voy guardo la siguier
información:
Apellidos
Nombre
Telefono
Móvil
Fecha
y quisiera que la fecha se ponga automáticamente cuando meta un dato en los
otros campos ¿cómo puedo hacerlo? eso si que no se ponga la del sistema cada
vez que la abro, quiero que se mantenga la del día en que di de alta a la
persona que sea.
He probado con =Ahora() pero me pasa precisamente eso que luego pone todas
las horas a la del sistema, abras cuando abras.
Venga una ayudita. Gracias

JJGarcia

unread,
Aug 23, 2006, 2:52:20 PM8/23/06
to
Hola, ¿Podrias intentar =HOY()?, esto trae solo la fecha del sistema,
saludos, JJGarcia

Lucia

unread,
Aug 23, 2006, 4:44:02 PM8/23/06
to
Gracias JJGarcia, pero no me sirve, por lo que comentaba en el post, toma la
fecha de hoy, pero cuando meta datos mañana o pasado, todas las fechas
vuelven a ser las de ese día.
Gracias de todas formas y si se te ocurre alguna cosilla más se agradece.
Saludos
Lucia

"JJGarcia" escribió:

Blind

unread,
Aug 23, 2006, 4:55:46 PM8/23/06
to
> > Lucia wrote:
> > > Hola, saludos. Tengo una pequeña tabla en la que voy guardo la siguier
> > > información:
> > > Apellidos
> > > Nombre
> > > Telefono
> > > Móvil
> > > Fecha
> > > y quisiera que la fecha se ponga automáticamente cuando meta un dato en los
> > > otros campos ¿cómo puedo hacerlo? eso si que no se ponga la del sistema cada
> > > vez que la abro, quiero que se mantenga la del día en que di de alta a la
> > > persona que sea.
> > > He probado con =Ahora() pero me pasa precisamente eso que luego pone todas
> > > las horas a la del sistema, abras cuando abras.
> > > Venga una ayudita. Gracias
> >
> >

Intentalo con el siguiente código:

'
ActiveCell.FormulaR1C1 = "=NOW()"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

lo pegas en un boton y das el formato de fecha a la celda.

Ahí te vez!!!!

Lucia

unread,
Aug 23, 2006, 5:36:01 PM8/23/06
to
Hola gracias por tu respuesta. Seguro que me viene bien, pero ¿cómo meto el
código y dónde? porfa, que soy de letras.
Dime como hacerlo y cómo hacerlo funcionar. Gracias, y no te olvides de
indicarme esas cosas para poder hacerlo
Saludos
Lucia

"Blind" escribió:

David

unread,
Aug 23, 2006, 6:39:01 PM8/23/06
to
Creo que lo que buscas lo puedes resolver por código, pero ten en cuenta que
cualquier modificación que hagas, por pequeña que sea, al contenido de una
celda en las columnas que mencionas, haría que la fecha se actualizara
automáticamente. En atención a esto, podríamos hacer que si en la celda H1
(fila 1, columna 8) hubiera un valor diferente de cero, el macro se
desactivara temporalmente. Esto te permitiría hacer operaciones de
mantenimiento sin que se actualizara la fecha.

El proceso podría describirse de la siguiente manera: Tendrías que
interceptar el evento Worksheet_Change, determinar si se modificó una celda
bajo los títulos Apellidos, Nombre, Teléfono y Móvil, y hacer que en la
columna Fecha, en la misma fila modificada, se asigne la fecha del sistema
como una constante.

¿Complejo? En realidad no tanto. Veámoslo paso a paso:

Supongamos que los títulos Apellidos, Nombre, Teléfono y Móvil se encuentran
en las columnas A, B, C y D respectivamente. Estas columnas las
identificaremos en el código como 1, 2, 3 y 4.

Supongamos que los títulos están en la fila 1. Entonces vamos a hacer que
el macro tenga efecto para la fila 2 en adelante.

Supongamos que el título Fecha está en la columna E, la cual el macro
identifica como la columna 5.

El código que buscas sería el siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <= 4 And Target.Row > 1 Then
If Cells(1, 8).Value = 0 Then
Cells(Target.Row, 5).Value = Date
End If
End If
End Sub

Observa cómo se utilizan los números que te menciono arriba en el código.
Trata de imaginar qué pasaría si variaras las filas y columnas...

Ahora veamos cómo se hace.

1. Asegúrate de tener abierto en Excel solamente el libro en el que quieres
programar el procedimiento.

2. Haz clic en "Herramientas" - "Macro" - "Seguridad", activa el nivel
"Medio", y aceptas.

3. Haz clic en "Herramientas" - "Macto" - "Editor de Visual Basic". Esto
abrirá la ventana del Editor para que ingreses el código.

4. Haz clic en "Ver" - "Explorador de proyectos". Al lado izquierdo, verás
una estructura de libros y carpetas similar a la que se ve en el Explorador
de windows.

5. Expande los siguientes elementos: Tu libro y luego "Microsoft Excel
Objetos"

6. Pulsa doble clic en la hoja en la cual quieres programar la fecha
automática. Esto hará que al lado derecho veas una ventana en la que puedes
editar el código de Visual Basic.

7. Pega el código de arriba.

8. Cierra el editor de Visual Basic. (No necesitas grabar, pues el editor
está en línea con tu libro)

9. Si todo funcionó Ok, graba el libro. Si surgió un problema que no puedas
resolver, graba el libro con otro nombre, y si quieres me escribes a la
dirección que aparece en mi perfil.

Espero que todo vaya bien.

Saludos.

- - - - - -


"Lucia" escribió:

Tinteño sonriente :-)

unread,
Aug 23, 2006, 10:35:02 PM8/23/06
to

"David" escribió:

'--------------- Agregando
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 Then Cells(Target.Row, 1).Select
End Sub
'---------------
Un saludo desde el volcan Misti de Arequipa-Peru
a todo lo dicho... agrega el codigo entre las rayas y no se podra modificar
fecha por ninguna razon... si asi lo desearas... el 5 es la columna 5 de fecha
sal^dos

Lucia

unread,
Aug 24, 2006, 6:41:01 PM8/24/06
to
David, perdona que haya tardado en responder, pero es que tengo una cantidad
de trabajo enorme, no sé pero empiezo a pensar que "vivimos para trabajar"
más que "trabajar para vivir".
Son ya algó más de las 12,30 horas de la madrugada y no sé si voy a poder
ponerme ahora a hacer esto que me envias pero la verdad que lo veo muy
clarito y bien estructurado, gracias por dedicarme tanto tiempo. Te prometo
que mañana será lo primero que haré. y estoy segura de hacerlo funcionar, me
lo has dejado perfecto, perfecto.
Gracias a todos los que habéis respondido y espero seguir viendosos por
aqui, no os olvideis de mi, que seguro que volveré a pedir ayuda.
voy a crear una cuenta en Hotmail para poder ponerla por aqui.

Lucia

"David" escribió:

Gavillas

unread,
Aug 25, 2006, 2:33:18 PM8/25/06
to
Amigos del foro, David y Tinteño sonriente:

Vuestra macro sobre fecha automática me parece muy interesante y oportuna,
pero no me funciona.
La he colocado, siguiendo los pasos descritos por David, en el módulo de la
hoja concreta, y no hay manera de que funcione, el cuerpo central del código
se pone en rojo como si estubiera mal y no camina. Tampoco soy experto en
VBA y mi versión de Excel es la 2002.
¿Alguna idea?
Gracias, Gavillas.


Willi@m

unread,
Aug 26, 2006, 7:16:28 PM8/26/06
to
Hola, Gavillas , Pon en las columnas A,B,C,D,E, estos títulos:
Apellidos Nombre Teléfono Móvil Fecha
Luego Haces click derecho en la pestaña de la hoja, donde dice Hoja1 y seleccionas Ver código, en la ventana que se abre pegas estas líneas y pruebas para ver que te parece.
 
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect([A:D], Target) Is Nothing Then Exit Sub
  If Cells(Target.Row, 5) = "" Then Cells(Target.Row, 5) = Date
End Sub
Espero que sea lo que buscas, Chao.
        Willi@m
 
"Gavillas" <ogue...@jazzfree.com> escribió en el mensaje news:eeXGVUHy...@TK2MSFTNGP06.phx.gbl...

Gavillas

unread,
Aug 27, 2006, 7:07:23 AM8/27/06
to
Pues me parece estupendo Willi@m.
Tu macro si que me funciona, y es mas corta.
Gracias por tus interesantes aportaciones.
 
Saludos, Gavillas.

Gavillas

unread,
Aug 27, 2006, 10:31:27 AM8/27/06
to
                    Como te decía, tu macro es muy buena, pero me gustaría que si el mismo libro se habre
varias veces al día, no indicara la fechas de los cambios tantas veces como aperturas en el mismo día.
Algo así como que "si la fecha anterior es igual a ésta, no se pone nada en fecha".
¿ Sería posible con alguna linea de código añadida?
Gracias, Gavillas.

<Willi@m> escribió en el mensaje news:u0X52fWy...@TK2MSFTNGP06.phx.gbl...
Hola, Gavillas , Pon en las columnas A,B,C,D,E, estos títulos:
Apellidos Nombre Teléfono Móvil Fecha
Luego Haces click derecho en la pestaña de la hoja, donde dice Hoja1 y seleccionas Ver código, en la ventana que se abre pegas estas líneas y pruebas para ver que te parece.
 
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect([A:D], Target) Is Nothing Then Exit Sub
  If Cells(Target.Row, 5) = "" Then Cells(Target.Row, 5) = Date
End Sub
Espero que sea lo que buscas, Chao.
        Willi@m
 
"Amigos del foro, David y Tinteño sonriente:
0 new messages