Como hacer macros para ocultar-mostrar columnas?

¿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
duralai
Mensajes: 120
Registrado: Jue Mar 03, 2011 2:24 am

Como hacer macros para ocultar-mostrar columnas?

Mensaje por duralai »

Hola, estoy preparando una hoja que aun no termino donde los datos abarcan muchas columnas deben ser como 300, por lo tanto se me complica para moverme de un sector a otro.
Entonces quisiera saber si es posible hacer varias macros para MOSTRAR-OCULTAR columnas, y si es posible que estas macros estén asociadas a un botón MOSTRAR-OCULTAR o a 2 por macro, o lo que sea, cosa que sea fácil ejecutarlas.
En esta hoja que estoy creando tengo un área que es fija, y arriba de este área me gustaría tener los botones, ya que siempre esta visible aunque me desplace por la hoja.
Voy a subir un ejemplo donde hay 3 áreas (verde, rojo y azul) y 9 sub-áreas también marcadas en colores distintos, también a todas las áreas las agrupe con AGRUPAR ESQUEMA (herramienta que desconocía hasta hace poco) solo para probar, pero no me daría resultados en la hoja que preparo ya que es mucho mas larga.
Hoy intente grabar una macro, fui a Grabar macro, seleccione ciertas columnas y las oculte, finalice la grabación, pero cuando quise ejecutarla (después de volver a mostrar el área que oculte), solo me oculto la columna sobre la cual estaba posicionado el cursor.

Lo que quisiera es una orientación con algún área de este ejemplo (ya que no entiendo nada de macros), y luego veré como lo hago yo mismo cuando termine la otra hoja. Supongo que si tengo una macro para MOSTRAR-OCULTAR un sector de una hoja, deberé copiar el código y reemplazar la parte del área de columnas para MOSTRAR-OCULTAR otro orea.

Otra cosa, para que la macro este siempre en la hoja debería grabarse en la misma hoja no?

Bueno, espero que se haya entendido y agradezco cualquier consejo.


Saludos!
Adjuntos
EJEMPLO OCULTAR-MOSTRAR.ods
(7.23 KiB) Descargado 1819 veces
OpenOffice.org 3.3 , XP Profesional
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por mauricio »

Hola...

Es muy sencillo ocultar columnas:

Código: Seleccionar todo

Option Explicit

Sub Pruebas()

	'Solo pasa el rango que quieras ocultar o mostrar
	Call MostrarOcultarColumnas("V1:Z1")

End Sub

Sub MostrarOcultarColumnas(Rango As String)
Dim oRango As Object

	oRango = ThisComponent.getCurrentController.getActiveSheet.getCellRangeByName(Rango)
	oRango.getColumns.IsVisible = NOT oRango.getColumns.IsVisible
	
End Sub
Te anexo tu archivo con las macros... solo resta asignar a los botones que quieras, ten cuidado de no poner los botones en el área de las columnas que ocultaras, yo crearía una nueva barra de herramientas para esto.

Si con las respuestas obtenidas consideras que se ha dado solución a tu consulta :), por favor, marca el tema como [RESUELTO],
Si no sabes cómo, por favor, lee Como marcar como [RESUELTO] un tema.
Gracias por participar en el foro y ayudar a que todo esté ordenado.
Adjuntos
EJEMPLO OCULTAR-MOSTRAR.ods
(8.44 KiB) Descargado 2980 veces
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
duralai
Mensajes: 120
Registrado: Jue Mar 03, 2011 2:24 am

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por duralai »

Hola Mauricio, gracias ante nada, baje el archivo pero no entiendo bien que debo hacer ahora, se supone que al ejecutar la Macro MostrarOcultarColumnas se debe Mostrar-Ocultar el área V1:Z1???? Perdona mi ignorancia al respecto, yo por las dudas puse a bajar la ultima versión de Ooo ya que la que hay en esta PC es antigua y creo que anda mal.

Otra cosa, para Mostrar-Ocultar un área debo hacer 2 macros? 1 Mostrar y otra Ocultar?

Después para asignarla aun botón leeré como hacer, yo no lo marque en el ejemplo pero hay un área fija que nunca se ocultaría y ahí quisiera poner los botones, igual no sabia que se podía hacer una barra para esto, pero a esto lo veré después, primero quiero saber bien como hay que hacer para grabar una macro Mostrar-Ocultar columnas.

Por ultimo, una vez me dijiste en una respuesta que el Grabador de Macros debe usarse para cosas realmente simples, que es mejor escribir el código para las macros, para esto de Mostrar-Ocultar que pensas, me conviene usar el grabador?
OpenOffice.org 3.3 , XP Profesional
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por mauricio »

duralai escribió: para esto de Mostrar-Ocultar que pensas, me conviene usar el grabador?
Te conviene usar la macro que te pase, ya hace todo el trabajo, la macro alterna el estado visible del rango pasado, si esta oculto lo muestra, si esta visible lo oculta... solo asegurate de pasarle un rango valido, no importan las filas, solo que sea un rango valido, con los siguientes rangos pasados como en el ejemplo que te muestro hacen lo mismo:

A1:Z1
A10:Z20

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
duralai
Mensajes: 120
Registrado: Jue Mar 03, 2011 2:24 am

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por duralai »

Mauricio, cuando ejecuto la macro me sale un mensaje de error: Se ha producido un error de marco de programación al ejecutar el comando Standard.Module1.MostrarOcultarColumnas escrito en Basic.
Mensaje: wrong number of parameters.
Aclaro que solo baje el archivo y sin tocar nada ejecute la Macro, no se si debía cambiar algo o no....
Recién acabo de instalar la ultima versión de Ooo Apache, y ya había instalado la ultima de Java y puesto la opción de Seguridad de Macros en "BAJO" ya que no se me ejecutaba.
OpenOffice.org 3.3 , XP Profesional
duralai
Mensajes: 120
Registrado: Jue Mar 03, 2011 2:24 am

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por duralai »

Hola, perdón por error ejecute otra macro, no me di cuenta que debía ejecutar la macro "pruebas" , ahora lo hice y funciona bien, ahora me faltaría saber como asociarla a un botón y a una barra, después veré cual de las 2 opciones uso, así que si podes bienvenida una ayuda.

Igualmente estoy leyendo ahora por la web un poco mas sobre macros, una vez había empezado a leer un libro tuyo pero como recién empezaba no entendía nada.

Muchas gracias.
OpenOffice.org 3.3 , XP Profesional
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por SLV-es »

Hola

Si en lugar de ocultar-mostrar prefieres agrupar por columnas, esta macro lo permite:

Código: Seleccionar todo

Sub Main
Dim oDoc as Object 
  oDoc = ThisComponent
  Columnas_Agrupar oDoc, 5, 7
End Sub


Sub Columnas_Agrupar( oDoc, nColIni, nColFin )
'--------------------------------------------------------------------------------------------
' Agrupa las columnas desde nColIni hasta nColFin
Dim oRango As New com.sun.star.table.CellRangeAddress
	With oRango
		.Sheet = oDoc.getCurrentController.getActiveSheet.getRangeAddress.Sheet
		.StartColumn = nColIni
		.EndColumn = nColFin
	End With
	oDoc.getCurrentController.getActiveSheet.Group( oRango, 0 )
End Sub


Saludos
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
duralai
Mensajes: 120
Registrado: Jue Mar 03, 2011 2:24 am

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por duralai »

Hola Salva, bueno gracias!
OpenOffice.org 3.3 , XP Profesional
duralai
Mensajes: 120
Registrado: Jue Mar 03, 2011 2:24 am

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por duralai »

Como tendria que hacer para crear una nueva Macro?
Yo me imagine que debia ir a Herramientas-Macros-Organizar macros-OpenOffice.org Basic
luego ir a la hoja y modulo donde quiero que se grabe, NUEVO y ahi copiar el codigo.
hago todo esto pero se me abre una macro ya creada anteriormente.
OpenOffice.org 3.3 , XP Profesional
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por mauricio »

______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
duralai
Mensajes: 120
Registrado: Jue Mar 03, 2011 2:24 am

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por duralai »

Ok, gracias lo vere, por ultimo, con la macro que me diste, se puede hacer que se Muestren-Oculten a la vez áreas separadas de una hoja, por ejemplo F1:K1 , M1:T1 y AA1:AG1?
OpenOffice.org 3.3 , XP Profesional
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por SLV-es »

Y también lo tienes en mi web, en el área dedicada al Basic de OpenOffice.
Saludos
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
duralai
Mensajes: 120
Registrado: Jue Mar 03, 2011 2:24 am

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por duralai »

Bueno, tbn lo veré, gracias.
OpenOffice.org 3.3 , XP Profesional
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Como hacer macros para ocultar-mostrar columnas?

Mensaje por mauricio »

Código: Seleccionar todo

Call MostrarOcultarColumnas("F1:K1")
Call MostrarOcultarColumnas("M1:T1")
Call MostrarOcultarColumnas("AA1:AG1")
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder