Saludos, mi nombre es Maria. Estoy empezando a conocer Open Office. Me he
dado de topes, aun no comprendo el funcionamiento y entre leo manuales y
practico, pero me quedo con muchas dudas porque estoy tomando como
referencia mis archivos de excel.
En cuanto a los apuntes donde puedo checarlos? Porque no es recomendable
utilizar el dispatch?
Ahora me he topado con un nuevo problema, como habras visto estoy realizando
dos filtros pero me los hace por separado y no se como pasarlo a codigo para
una macro. Quiero ponerlos como si fuera un filtro predeterminado donde la
columna 5 sea igual a Miercoles y en la columna 12 sea igual a En proceso.
El 9 de septiembre de 2008 19:02, Mauricio Baeza
<[EMAIL PROTECTED]>escribió:
> Hola... ¿como te llamas?...
>
> El problema que tienes es con tus índices, los campos para filtrar empiezan
> a contar desde cero, por lo que tu columna RESULTADO es el campo 12 (las
> columnas ocultas también cuentan)... las siguientes macros las he probado
> en
> tus datos y funcionan bien...
>
> Envío tu archivo a tu correo personal con las macros trabajando, veo que
> están haciendo migraciones de macros de MS Office, mi recomendación es que
> no traten de "trasladar" línea por línea, sino que se use solo como "guía"
> para "reescribir" en OOo Basic, también procura evitar el uso del
> "distpach"...
>
> Tal vez te sean utiles los apuntes que estoy preparando...
>
>
> Saludos
>
> Mauricio
>
> ---------------------------------------------------
> Aqui las macros...
>
> Option Explicit
>
> Sub FiltrarDatos()
> Dim oHojaRC As Object
> Dim oRangoCeldas As Object
> Dim oDescFiltro As Object
> Dim oCamposFiltro(0) As New com.sun.star.sheet.TableFilterField
>
> If ThisComponent.getSheets().hasByName("Reporte de Cambios") Then
> oHojaRC = ThisComponent.getSheets().getByName("Reporte de Cambios")
> oRangoCeldas = oHojaRC.getCellRangeByName("$A$2:$U$100")
> '--------------------
> oCamposFiltro(0).Field = 12
> oCamposFiltro(0).IsNumeric = False
> oCamposFiltro(0).Operator = com.sun.star.sheet.FilterOperator.EQUAL
> oCamposFiltro(0).StringValue = "Cancelado"
>
> oDescFiltro = oRangoCeldas.createFilterDescriptor (True)
> oDescFiltro.ContainsHeader=true
> oDescFiltro.setFilterFields ( oCamposFiltro() )
> oRangoCeldas.Filter (oDescFiltro)
> Else
> MsgBox "La hoja no existe"
> End If
>
> End Sub
>
> Sub MostrarTodos()
> Dim oHojaRC As Object
> Dim oRangoCeldas As Object
> Dim oDescFiltro As Object
>
> If ThisComponent.getSheets().hasByName("Reporte de Cambios") Then
> oHojaRC = ThisComponent.getSheets().getByName("Reporte de Cambios")
> oRangoCeldas = oHojaRC.getCellRangeByName("$A$2:$U$100")
> oDescFiltro = oRangoCeldas.createFilterDescriptor (True)
> oRangoCeldas.Filter (oDescFiltro)
> End If
> End Sub
>
>
>
>