Este script yo lo usaba para desmarcar un rango de celdas, las cuales "selecciono" de una lista desplegable con una simple letra x
Range("B17").Select
'While ActiveCell.Value <> "FIN"
While ActiveCell.Column < 136
If ActiveCell.Value <> "X" Then
Columns(ActiveCell.Column).Hidden = True
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(0, 1).Select
End If
Wend
Range("B17").Select
End Sub
yo hice esto, pero no funco.
Dim oSheet as Object
oSheet = ThisComponent.CurrentController.ThisComponent.CurrentController.ActiveSheet
ThisComponent.CurrentController.select(oSheet.getCellDim oSheet as Object
oSheet = ThisComponent.CurrentController.ActiveSheet
oSheet.getCellRangeByName($1)ByName(("B17")))
'While ThisComponent.getCurrentSelection.Value <> "FIN"
While ThisComponent.getCurrentSelection.Column < 136
If ThisComponent.getCurrentSelection.Value <> "X" Then
Columns(ThisComponent.getCurrentSelection.Column).Hidden = True
ThisComponent.getCurrentSelection.Offset(0, 1).Select
Else
ThisComponent.getCurrentSelection.Offset(0, 1).Select
End If
Wend
Dim oSheet as Object
oSheet = ThisComponent.CurrentController.ThisComponent.CurrentController.ActiveSheet
ThisComponent.CurrentController.select(oSheet.getCellDim oSheet as Object
oSheet = ThisComponent.CurrentController.ActiveSheet
oSheet.getCellRangeByName($1)ByName(("B17")))
End Sub
Cualquier ayuda es bienvenida.
Editado por el moderador (valedor74) para mover el tema a un subforo apropiado. Si no lo has hecho aún por favor lee la Guía de supervivencia
Una macro de vba a oobasic
Una macro de vba a oobasic
OpenOffice 3.0 windows xp
Re: Una macro de vba a oobasic
Hola...
La macro que muestras hace lo siguiente:
Selecciona la celda B17
Hace un ciclo mientras la columna sea menor a 136
Evalúa si la celda activa es diferente de "X"
Si es diferente, oculta la columna
Se mueve una columna a la derecha
Si es igual, solo se mueve una columna a la derecha
Al finalizar el ciclo vuelve a seleccionar la celda B17
En resumen, de la columna 2 a la 135, las que NO tengan una "X" en la fila 17 se ocultan, ¿es esto correcto?, si es correcto, la siguiente macro hace lo mismo:
Saludos
Mauricio
Por favor, si esto resuelve tu pregunta, marca tu mensaje inicial como [RESUELTO] de este modo, tenemos foros más ordenados
La macro que muestras hace lo siguiente:
Selecciona la celda B17
Hace un ciclo mientras la columna sea menor a 136
Evalúa si la celda activa es diferente de "X"
Si es diferente, oculta la columna
Se mueve una columna a la derecha
Si es igual, solo se mueve una columna a la derecha
Al finalizar el ciclo vuelve a seleccionar la celda B17
En resumen, de la columna 2 a la 135, las que NO tengan una "X" en la fila 17 se ocultan, ¿es esto correcto?, si es correcto, la siguiente macro hace lo mismo:
Código: Seleccionar todo
Sub OcultarColumnas()
Dim oHojaActiva As Object
Dim Col As Integer
oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
For Col = 1 To 134
If oHojaActiva.getCellByPosition( Col,16).getString <> "X" Then
oHojaActiva.getCellByPosition( Col,16).getColumns.IsVisible = False
End If
Next
End SubMauricio
Por favor, si esto resuelve tu pregunta, marca tu mensaje inicial como [RESUELTO] de este modo, tenemos foros más ordenados
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Una macro de vba a oobasic
Claro, mira... por un lado tengo esto
Range("B17").Select
'While ActiveCell.Value <> "FIN"
While ActiveCell.Column < 136
If ActiveCell.Value <> "X" Then
Columns(ActiveCell.Column).Hidden = True
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(0, 1).Select
End If
Wend
Range("B17").Select
End Sub
por otro
Range("B17").Select
'While ActiveCell.Value <> "FIN"
While ActiveCell.Column < 136
If ActiveCell.Value = "X" Then
'Columns(ActiveCell.Column).Hidden = True
ActiveCell.Value = " "
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(0, 1).Select
End If
Wend
Range("B17").Select
End Sub
y
Columns("B:IV").Select
Range("B4").Activate
Selection.EntireColumn.Hidden = False
Range("B17").Select
End Sub
estas macros me hacen lo siguiente, me ocultan lo que esta marcado con una x, lo que no, no lo ocultan. El problema me sigue surgiendo para convertir la macro que me descmarca todo (que quita la x).
Range("B17").Select
'While ActiveCell.Value <> "FIN"
While ActiveCell.Column < 136
If ActiveCell.Value <> "X" Then
Columns(ActiveCell.Column).Hidden = True
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(0, 1).Select
End If
Wend
Range("B17").Select
End Sub
por otro
Range("B17").Select
'While ActiveCell.Value <> "FIN"
While ActiveCell.Column < 136
If ActiveCell.Value = "X" Then
'Columns(ActiveCell.Column).Hidden = True
ActiveCell.Value = " "
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(0, 1).Select
End If
Wend
Range("B17").Select
End Sub
y
Columns("B:IV").Select
Range("B4").Activate
Selection.EntireColumn.Hidden = False
Range("B17").Select
End Sub
estas macros me hacen lo siguiente, me ocultan lo que esta marcado con una x, lo que no, no lo ocultan. El problema me sigue surgiendo para convertir la macro que me descmarca todo (que quita la x).
OpenOffice 3.0 windows xp
Re: Una macro de vba a oobasic
No mencionas si la primera es correcta o no, y no veo donde "intentes" adaptarlas, según las muestras que te voy dando...
Para la segunda macro, seria así
Para la segunda macro, seria así
Código: Seleccionar todo
Sub OcultarColumnas2()
Dim oHojaActiva As Object
Dim Col As Integer
oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
For Col = 1 To 134
If oHojaActiva.getCellByPosition( Col,16).getString = "X" Then
oHojaActiva.getCellByPosition( Col,16).setString("")
oHojaActiva.getCellByPosition( Col,16).getColumns.IsVisible = False
End If
Next
End Sub______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Una macro de vba a oobasic
Soy un tarado, recien me doy cuenta, es que realmente, resolves demasiado precisas las consultas y al no tener muy claro oobasic, se me hace dificil ver la solución.
Pero aun no me doy cuenta como quitar las x.
GRACIAS!!
Pero aun no me doy cuenta como quitar las x.
GRACIAS!!
OpenOffice 3.0 windows xp
Re: Una macro de vba a oobasic
jajaja, mi estimado, recuerda que todos somos novatos alguna vez...
La línea precisa donde se quitan las X es en:
oHojaActiva.getCellByPosition( Col,16).setString("")
En tus ratos libres, checa mi libro: http://user.services.openoffice.org/es/ ... =50&t=1545
esta bastante documentado el manejo de Calc en el...
Saludos
Mauricio
La línea precisa donde se quitan las X es en:
oHojaActiva.getCellByPosition( Col,16).setString("")
En tus ratos libres, checa mi libro: http://user.services.openoffice.org/es/ ... =50&t=1545
esta bastante documentado el manejo de Calc en el...
Saludos
Mauricio
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro