Página 1 de 1
[RESUELTO]Copiar celdas hoja visible a hoja oculta,
Publicado: Dom Ago 09, 2020 7:55 am
por senda678
Hola buenos días,
He estado buscando por el foro pero no lo he encontrado.
He visto como copiar celdas a otras hojas, pero no es exactamente lo que necesito.
Os explico un poco.
Voy a crear unas hojas de trabajo, donde mis trabajadores tienen que ir escribiendo los datos que van haciendo, y lo que me gustaría es que todo lo que escriban lo copie a otra hoja oculta. Y ademas si ellos por ejemplo han escrito en la celda B2 o la que sea, y despues lo borran y ponen otra cosa, que se haya copiado lo primero que han escrito y luego lo nuevo, que me copie todo aunque ellos lo borren.
Es para hacerles un control para que no puedan manipular datos.
Muchisimas gracias
Re: Copiar celdas hoja visible a hoja oculta,
Publicado: Dom Ago 09, 2020 3:49 pm
por senda678
Respecto al comentario de antes, no me importaria que la hoja no estuviese oculta.
Pero lo de que vaya copiando todo lo que van escribiendo si, y aunque ellos lo borren, lo haya copiado ya, y así podría controlar lo qe hacen.
Gracias de nuevo
Re: Copiar celdas hoja visible a hoja oculta,
Publicado: Lun Ago 10, 2020 8:18 am
por PepeOooSevilla
Hola.
En el archivo adjunto va un ejemplo. Tendrás que modificar según tu necesidades.
Este es el código asociado al suceso "
Contenido cambiado" de la hoja "
DATOS".
La hoja "
BITACORA_DATOS" puedes ocultarla si quieres, no afecta a la macro.
Código: Seleccionar todo
REM *** BASIC ***
Option Explicit
Sub GuardarCambiosCeldas()
' Suceso: Contenido cambiado
Dim DocCalc As Object
Dim HojaAuxiliar As Object
Dim Seleccion As Object
Dim ContenidoActual As String
Dim DireccionAbsoluta As String
Dim FilaLibre As Long
DocCalc = ThisComponent
Seleccion = DocCalc.getCurrentSelection()
If Seleccion.getImplementationName() = "ScCellObj" Then
DireccionAbsoluta = Seleccion.AbsoluteName
ContenidoActual = Seleccion.getString()
HojaAuxiliar = DocCalc.getSheets.getByName("BITACORA_DATOS")
With HojaAuxiliar
FilaLibre = .getCellRangeByName("B1").getValue()
'Comenzamos en la Columna A, Fila 4 de la hoja BITACORA_DATOS
.getCellByPosition(0, 3 + FilaLibre).setString(DireccionAbsoluta)
.getCellByPosition(1, 3 + FilaLibre).setString(ContenidoActual)
.getCellByPosition(2, 3 + FilaLibre).setValue(Now())
End With
End If
End Sub
Con un filtro automático puedes consultar la celda que te interese y ver las modificaciones que ha sufrido a lo largo del tiempo.
Saludos cordiales.
Re: [RESUELTO]Copiar celdas hoja visible a hoja oculta,
Publicado: Lun Ago 10, 2020 9:36 am
por senda678
hola, de verdad que mil gracias, no te imaginas cuanto me has ayudado con esto,
Un abrazo.
Re: [RESUELTO]Copiar celdas hoja visible a hoja oculta,
Publicado: Lun Ago 10, 2020 1:53 pm
por senda678
Hola de nuevo, lo he estado probando y va muy bien, pero me han surgido varias dudas.
El suceso contenido cambiado yo por lo menos en mi versión no lo tengo, y si copio la macro en mi archivo no me va, y luego con tu hoja, si generas mas hojas tampoco.
Si te parece te paso mi hoja para que puedas ver un poco la idea.
Tengo creadas 14 hojas.
1- Claves
2 - Summary Sheet
3-13 son de cada trabajador
14 es donde queria recoger todos los datos de todo lo que escriban los trabajadores.
Te paso el documento por si le quieres echar un vistazo, ahora mismo solo tengo funcionando la macro de proteger claves con los botones, el resto por ahora no lo tengo activo, porque si no no puedo ir haciendo todas las pruebas.
Mil gracias portu ayuda
Re: [RESUELTO]Copiar celdas hoja visible a hoja oculta,
Publicado: Mar Ago 11, 2020 7:22 am
por PepeOooSevilla
Hola.
Vayamos por partes ...
... El suceso contenido cambiado yo por lo menos en mi versión no lo tengo ...
* Pasos a seguir para asignar una macro a un suceso de hoja en
LibreOffice:
- 1. Pinchar con el botón derecho del ratón sobre la pestaña de la hoja (donde figura su nombre), o bien, en el menú Hoja.
2. Pinchar en Sucesos de hoja....
3. Aparece un cuadro de diálogo de nombre Asignar acción.
4. Seleccionar Contenido cambiado y pinchar en el botón Macro....
5. Aparece otro cuadro de diálogo de nombre Selector de macros donde seleccionaremos la Biblioteca donde se encuentran nuestras macros y, dentro de ella, el Nombre de la macro que queremos que se ejecute al cambiar el contenido de una celda de esa hoja en concreto.
6. Para finalizar pincharemos en el botón Aceptar de cada uno de los cuadros de diálogos abiertos.
... si copio la macro en mi archivo no me va ...
Todos los pasos anteriores se deben repetir
para cada una de las hojas de las que deseemos asignar esa macro.
... si generas mas hojas tampoco ...
Ídem.
En el archivo adjunto ya está asignada la macro
GuardarCambiosCeldas a todas las hojas de nombre "usuarioX".
La celda
B1 de la hoja
Copia_datos contiene la fórmula:
Esa celda se usa en la macro para saber en qué fila escribir las modificaciones que se vayan sucediendo. Puedes cambiar el 500000 por 1048576 (número máximo de filas en una hoja Calc, por ahora).
Saludos cordiales.
Re: [RESUELTO]Copiar celdas hoja visible a hoja oculta,
Publicado: Mar Ago 11, 2020 1:42 pm
por senda678
Holaaaaa, ahora si que si un millon de gracias.
Un saludo.