Buen día. Estoy necesitando una macro que consigne la fecha y hora en la celda AX6 cuando se escriba algo en la celda A6 y que luego se seleccione la celda siguiente a A6 o sea B6. No me sirve usar la opción de evento de macro asociado a la validez de la celda y tampoco la opción de evento asociado a la hoja.
Ejemplo: consigno la fecha de hoy en A6 y automáticamente aparece la hora actual (con fecha) en la celda AX6 ese dato tendría que ser en formato estándar y no como fórmula (ejemplo: 25/08/20 09:31). Supongo que se debe ejecutar la fórmula =AHORA() en la celda AX6 y luego se debe copiar y pegar el dato en la misma celda para que ya desaparezca la fórmula. (bueno si logro todo eso quisiera que se repita lo mismo para A7 y AX7; A8 y AX8 etc. etc. pero eso ya pienso que lo podría hacer yo sin ayuda).
Entiendo que esto se puede hacer con la grabadora de macros de opencalc, pero no quiero pasar y pasar, una por una por todas las celdas desde A6 hasta AX6 ya que tengo agrupaciones de columnas que pueden o no estar desplegadas y esto puede crear inconvenientes de precisión en el desplazamiento ya que si en algún momento tengo agrupadas las columnas de forma distinta a la grabación, entonces el desplazamiento grabado no sería preciso y la fórmula se pegaría en la celda equivocada.
Agradezco desde ya vuestra amable ayuda sobre esta macro que me parece muy interesante. Cordial saludo al foro.
[Resuelto] Macro para fechar una celda
[Resuelto] Macro para fechar una celda
Última edición por BOTUCATU el Mar Ago 25, 2020 10:40 pm, editado 2 veces en total.
OpenOffice 3.1 en Windows 7 SP1
Re: MACRO PARA FECHAR UNA CELDA
Por favor, no escribas en solo mayúsculas, gracias.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
- PepeOooSevilla
- Mensajes: 1480
- Registrado: Sab Abr 04, 2009 6:10 pm
- Ubicación: Sevilla (España)
Re: Macro para fechar una celda
Hola.
En el archivo adjunto verás un ejemplo. Este es el código:
Está asociada al suceso de hoja Contenido cambiado y antes de escribir en AX la fecha y hora comprueba que la celda modificada pertenece a la columna A y la fila es mayor o igual que 6. Hay que tener en cuenta que las columnas y filas en programación OpenOffice/LibreOffice Basic comienzan en 0 (cero).
Saludos cordiales.
En el archivo adjunto verás un ejemplo. Este es el código:
Código: Seleccionar todo
REM ***** BASIC *****
Option Explicit
Sub EscribirFechaHoraAX()
' Suceso: Contenido cambiado
Dim DocCalc As Object
Dim HojaActiva As Object
Dim Seleccion As Object
Dim Columna As Long
Dim ColumnaA As Long
Dim Fila As Long
DocCalc = ThisComponent
Seleccion = DocCalc.getCurrentSelection()
HojaActiva = DocCalc.CurrentController.ActiveSheet
ColumnaA = 0
With Seleccion
If .getImplementationName() = "ScCellObj" Then
Columna = .getCellAddress().Column
Fila = .getCellAddress().Row
'Columna A y Fila 6 en adelante. Las filas/columnas comienzan en 0
If (Columna = ColumnaA) And (Fila > 4) Then
'Columna 49 = AX y Fila es la de la celda modificada
HojaActiva.getCellByPosition(49, Fila).setValue(Now())
End If
End If
End With
End Sub
Saludos cordiales.
- Adjuntos
-
- FORO_CALC_Macro_fechar_celda.ods
- LibO Calc 6.4.6
- (14.98 KiB) Descargado 181 veces
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Re: Macro para fechar una celda
Uuuu ¡Que excelente!
Muchas gracias PepeOooSevilla. Funciona de maravilla y daré por resuelto el tema. Saludos cordiales.

OpenOffice 3.1 en Windows 7 SP1