[RESUELTO] Crear hojas a partir de una columna

Discute sobre la aplicación de hojas de cálculo

[RESUELTO] Crear hojas a partir de una columna

Notapor labotica » Jue Abr 12, 2018 1:08 pm

Hola de nuevo. Vuelvo a tener una duda y no sé como solucionar un problema. Tengo una hoja de cálculo, y me gustaría que, cada vez que escribo en una celda de una determinada columna, al pulsar intro, se creaSE una hoja nueva con el nombre "Ficha Técnica (y el contenido de la celda que acabo de escribir)". Alguien tiene alguna idea de si es posible hacerlo?
Como siempre, muchísimas gracias por todo
Última edición por labotica el Lun Abr 16, 2018 6:28 pm, editado 1 vez en total
OpenOffice 4.0 en Ubuntu 14.04
labotica
 
Mensajes: 19
Registrado: Lun Dic 14, 2015 3:41 pm

Re: Crear hojas a partir de una columna

Notapor PepeOooSevilla » Dom Abr 15, 2018 8:55 am

Hola.
Adjunto una posible solución.

Código: Seleccionar todo   Expandir vistaContraer vista
REM  *****  BASIC  *****
Option Explicit

Sub CrearHojaSegunColumna()
   Dim DocCalc As Object
   Dim Seleccion As Object
   Dim NombreNuevaHoja As String
   Dim HojasEnLibro As Object
   
   On Error Goto CONTROL_ERRORES
   DocCalc = ThisComponent
   Seleccion = DocCalc.getCurrentSelection()
   With Seleccion
      'Solo si es una sola celda
      If .supportsService("com.sun.star.sheet.SheetCell") Then
         'También If .getImplementationName() = "ScCellObj" Then
         'Si no es la columna A sale del procedimiento
         'En OOBasic las columnas y filas comienzan en 0 (cero)
         If .getCellAddress.Column <> 0 Then Exit Sub
         NombreNuevaHoja = .getString()
         'Si la celda está vacía sale del procedimiento
         If NombreNuevaHoja = "" Then Exit Sub
        NombreNuevaHoja = "Ficha Técnica " & NombreNuevaHoja
         HojasEnLibro = DocCalc.getSheets()
         With HojasEnLibro
            If Not .hasByName(NombreNuevaHoja) Then
               'Si no existe la insertamos al final
               .insertNewByName(NombreNuevaHoja, .getCount())
            Else
               MsgBox "Esta hoja ya existe", 16, "¡Atención!"
            End If
         End With
      End If
   End With
   Exit Sub
CONTROL_ERRORES:
   MsgBox "Se ha producido un error ...", 16, "¡Atención!"
End Sub

A tener en cuenta:

    - La macro tiene que estar seleccionada en "Sucesos de hoja -> Contenido cambiado" de la hoja desde donde quieres crear las otras hojas.
    - Las hojas se crean al cambiar el contenido de alguna celda de la columna A (.getCellAddress.Column <> 0). Si quieres que sea la columna B entonces debes cambiar el 0 (cero) por un 1; si es la C por un 2 y así sucesivamente.
    - Si el nombre de la hoja se repite te avisa y no se crea ninguna hoja.
Saludos cordiales.
Adjuntos
FORO_CALC_Crear hojas a partir de una columna.ods
LibreOffice Calc
(11.2 KiB) 36 veces
Última edición por PepeOooSevilla el Mar Abr 17, 2018 9:18 am, editado 1 vez en total
LibreOffice 6.1.5 en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Avatar de Usuario
PepeOooSevilla
 
Mensajes: 1066
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Crear hojas a partir de una columna

Notapor PepeOooSevilla » Lun Abr 16, 2018 8:07 am

... Y si tienes curiosidad e interés en la programación de macros para OpenOffice/LibreOffice tienes que leer el libro Aprendiendo OOo Basic de nuestro compañero mauricio .

También en las páginas Manuales de Apache OpenOffice en español: Basic y, Basic OpenOffice: Apache OpenOffice Basic en español de nuestro compañero SLV-es, encontrarás muy buena información.

Saludos cordiales.
LibreOffice 6.1.5 en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Avatar de Usuario
PepeOooSevilla
 
Mensajes: 1066
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Crear hojas a partir de una columna

Notapor labotica » Lun Abr 16, 2018 2:01 pm

Muchíisimas gracias. Ahora mismo lo pruebo y comento que tal
OpenOffice 4.0 en Ubuntu 14.04
labotica
 
Mensajes: 19
Registrado: Lun Dic 14, 2015 3:41 pm

Re: Crear hojas a partir de una columna

Notapor labotica » Lun Abr 16, 2018 2:26 pm

Perfecto! Es justo lo que necesitaba!!! Y tengo otra duda:
Si quisiera que estas hojas que se me crean, se creasen con una plantilla que tengo hecha, sería posible? Todavía no voy a colocar el tema como resuelto, pero si creen que tengo que abrir otro tema con estas pregunta y marcar este tema como resuelto, así lo haré.
Muchas gracias
OpenOffice 4.0 en Ubuntu 14.04
labotica
 
Mensajes: 19
Registrado: Lun Dic 14, 2015 3:41 pm

Re: Crear hojas a partir de una columna

Notapor labotica » Lun Abr 16, 2018 2:55 pm

Y otra pregunta sería si es posible que estas hojas que abre la macro tuviesen un color de pestaña determinado.
Gracias
OpenOffice 4.0 en Ubuntu 14.04
labotica
 
Mensajes: 19
Registrado: Lun Dic 14, 2015 3:41 pm

Re: Crear hojas a partir de una columna

Notapor mauricio » Lun Abr 16, 2018 6:01 pm

Efectivamente, son otras preguntas, recuerda, una pregunta por tema, una respuesta por tema.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5793
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

[SOLUCIONADO] Crear hojas a partir de una columna

Notapor labotica » Lun Abr 16, 2018 6:27 pm

Ok, abro otro tema, y gracias
OpenOffice 4.0 en Ubuntu 14.04
labotica
 
Mensajes: 19
Registrado: Lun Dic 14, 2015 3:41 pm

Re: [SOLUCIONADO] Crear hojas a partir de una columna

Notapor mauricio » Lun Abr 16, 2018 6:36 pm

Por favor, mira este tema: ¿Cómo marcar como RESUELTO un tema?, para conocer la forma correcta de marcar un tema como RESUELTO, ahora lo hago por ti, procura hacerlo tu en el futuro.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5793
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados