"JJGarcia" escribió:
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!!!!
"Blind" escribió:
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ó:
"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
"David" escribió:
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.
| Apellidos | Nombre | Teléfono | Móvil | Fecha |
"Gavillas" <ogue...@jazzfree.com> escribió en el mensaje news:eeXGVUHy...@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
"Amigos del foro, David y Tinteño sonriente: