[RESUELTO]Eliminar Hoja

¿Nuevo en Apache OpenOffice? ¿No sabe cómo comenzar o dónde hacer su pregunta? ¡Este es el lugar!
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Responder
senda678
Mensajes: 21
Registrado: Mié Jul 15, 2020 3:57 pm

[RESUELTO]Eliminar Hoja

Mensaje por senda678 »

Hola buenos días, se que os estoy pidiendo mucha ayuda ultimamente, pero me estoy metiendo en este mundillo de las macros, y cada día se me van ocurriendo cosas nuevas.

he creado esta macro para eliminar hojas y funciona perfectamente. Pero lo que yo quería si se puede por eso os pido ayuda, es aplicar esta Macro a un botón y que cuando le des te salga una ventana en el que pongas el nombre de la hoja y se elimine.

Ahora mismo tal y como esta elimina la hoja seleccionada pero no la puedes ejecutar con botón, ya que si no eliminarías la hoja en la que estas.

sub EliminarSheets

dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 4
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Remove", "", 0, Array())

end sub


Muchas Gracias
Última edición por PepeOooSevilla el Jue Ago 13, 2020 8:16 pm, editado 2 veces en total.
Razón: Seleccionar icono de RESUELTO
Libreoffice Versi??n: 6.4.4.2 (x64)
windows 10
Avatar de Usuario
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Eliminar Hoja

Mensaje por PepeOooSevilla »

Hola.
El ejemplo adjunto está en el libro de nuestro compañero mauricio (apartado 6.1.2 Borrando hojas):

Código: Seleccionar todo

REM  *****  BASIC  *****
Option Explicit

Sub BorrarHoja2()
	Dim oHojas As Object
	Dim sNombre As String

	sNombre = Trim(InputBox("Nombre de la hoja a borrar:", "¡Atención!"))
	If sNombre <> "" Then
		oHojas = ThisComponent.getSheets()
		If oHojas.hasByName(sNombre) Then
			oHojas.removeByName(sNombre)
		Else
			MsgBox "La hoja no existe.", 16, "¡Atención!"
		End If
	End If
End Sub
Las macros no son fáciles pero si te interesa la programación para OpenOffice/LibreOffice tienes que leer y estudiar el libro Aprendiendo OOo Basic de nuestro compañero mauricio. También lo puedes consultar aquí: Guía de introducción al uso de Apache OpenOffice > Temas Avanzados > Macros > StarBasic

Además 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.
Adjuntos
Borrar_Hoja.ods
LibO Calc 6.4.6
(10.36 KiB) Descargado 236 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.
senda678
Mensajes: 21
Registrado: Mié Jul 15, 2020 3:57 pm

Re: [RESUELTO]Eliminar Hoja

Mensaje por senda678 »

Muchisimas gracias, es perfecto.

Si estoy leyendo el libro de ahí estoy sacando muchas ideas.

un abrazo.
Libreoffice Versi??n: 6.4.4.2 (x64)
windows 10
Responder