Hola, saludos a tod@s, soy nuevo, asi que espero tengan un poco de paciencia. mi problema es el siguiente. tengo una hoja donde tengo que introducir unos datos y quiero que una vez termine de meter los datos al pulsar un boton se añadan a otra hoja y que en la primera hoja se borren y prepare para meter otro registro. se que hace falta programacion. pero si no pueden hacerlo por lo complejo me gustaria saber que lenguaje se usa y donde puedo buscar un tutorial para yo currármelo. lo he logrado con tutorial en googlesheet pero me interesa mas libreoffice.muchas gracias.
Hola @Noyche, ejemplo básico en pt-br.
https://wiki.documentfoundation.org/images/6/61/Banco_de_Dados_Modelo.ots
Básicamente, lo que quieres es utilizar un formulario para carga de datos.
En hoja 1 se haría el ingreso de datos, por ejemplo en A2:D2 o en varias filas.
En hoja 2, los datos se copian al final de la tabla, en la primera fila libre.
Por último una botón,para copia los datos de la hoja 1 a la hoja 2, limpia los campos de la hoja 1, dejandola lista para una nueva carga
En definitiva tendríamos Hoja 1 (Carga) para carga de datos en A2:D2 (configuralo sesgún tus necesidades) Hoja 2 (Datos) para almacenar el histórico de datos, con encabezados en fila 1 y datos que se agregan desde la fila 2 en adelante
Para ello requieres una Macro de Libreoffice en Basic (https://documentation.libreoffice.org/assets/Uploads/Documentation/es/GS52/PDF/GS5213-PrimerosPasosConMacros.pdf)
Basicamente sería pulsar en Menu —> Herramientas —> Macros —> Editar macros
En Mi Macros —> Standard, crear un módulo
El código sería algo así como:
===============================================
Sub TransYLimp()
Dim oDoc As Object
Dim oCarga As Object
Dim oDatos As Object
Dim filaDestino As Long
oDoc = ThisComponent
oCarga = oDoc.Sheets.getByName("Carga")
oDatos = oDoc.Sheets.getByName("Datos")
' Buscar la primera fila vacía en la hoja Datos (columna A)
filaDestino = 1
Do While oDatos.getCellByPosition(0, filaDestino).String <> ""
filaDestino = filaDestino + 1
Loop
' Copiar A2:D2 → fila libre
oDatos.getCellRangeByPosition(0, filaDestino, 3, filaDestino).DataArray = _
oCarga.getCellRangeByPosition(0, 1, 3, 1).DataArray
' Limpiar datos en la hoja Carga
oCarga.getCellRangeByPosition(0, 1, 3, 1).clearContents(7)
End Sub
=============================================
Para crear el botón
Menu —> Ver —> Barras de herramientas —> Controles de formulario
Insertar Botón, clic derecho sobre el botón —> Asignar macro
Seleccionar TransYLimp
Asi deberias poder copiar los datos, agregarlos sin sobrescribir registros anteriores, limpiar el formulario y repetir el proceso indefinidamente