Insertar fecha actual en la plantilla de Excel al momento de la creación
Pregunta
Estoy creando una plantilla de Excel (*.xlt) para un usuario aquí, y una de las cosas que quiero hacer es que inserte la fecha actual cuando se crea un nuevo documento (es decir, cuando hacen doble clic en el archivo en Explorador de Windows).¿Cómo hago esto?
Actualizar: Debería haber agregado que preferiría no usar ningún vba (macro).Si esa es la única opción, que así sea, pero realmente me gustaría evitar obligar a mi usuario a recordar hacer clic en algún botón "permitir contenido macro".
Solución
Puede usar la función de hoja de trabajo =HOY(), pero obviamente esto se actualizará a la fecha actual cada vez que se vuelva a calcular el libro.
El único otro método que se me ocurre es, como dijo 1729, codificar el evento Workbook_Open:
Private Sub Workbook_Open()
ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Date
End Sub
Puede reducir el problema de necesitar que el usuario acepte macros cada vez firmando digitalmente la plantilla (en VBA IDE Tools | Firma digital...) y seleccionando un certificado digital; sin embargo, necesitará obtener un certificado de una certificación comercial. autoridad (ver http://msdn.microsoft.com/en-us/library/ms995347.aspx).El usuario deberá seleccionar confiar siempre en este certificado la primera vez que ejecute la plantilla, pero a partir de entonces no se le volverá a preguntar.
Otros consejos
Puede editar la plantilla predeterminada para Excel:
Hay un archivo llamado Book.xlt
en el XLSTART
directorio, normalmente ubicado en C:\Program Files\Microsoft Office\Office\XLStart\
Debería poder agregar una macro llamada Workbook_Open
Private Sub Workbook_Open()
If ActiveWorkBook.Sheets(1).Range("A1") = "" Then
ActiveWorkBook.Sheets(1).Range("A1") = Now
End If
End Sub
Mi VBA está un poco oxidado, pero es posible que algo como esto funcione.
Para evitar VBA, y si cree que sus usuarios podrían seguir las instrucciones, puede pedirles que copien la fecha y luego peguen valores especiales-> para establecer la fecha de modo que no cambie en el futuro.