El 28 de octubre de 2009 11:33, Gabriel Germán Salas <[email protected] > escribió:
> > Si, sucede que es muy incómodo cambiar el rango de datos para cada uno, > más aún porque deseo proteger as hojas por seguridad ante errores. > > Encontré que se detectó un error en OOo que entiendo es el causante de > mi problema, pero no se como solucionarlo. > > http://www.openoffice.org/issues/show_bug.cgi?id=29848 > > > Parece que tendrá solución hasta la versión 3.3, como supongo que no puedes esperar, prueba la siguiente macro que te actualiza TODOS los rangos de TODOS los gráficos de tu hoja activa a dicha hoja activa. Option Explicit Sub ActualizarHoja() Dim oHojaActiva As Object Dim oCelda As Object Dim oGraficos As Object Dim oGrafico As Object Dim co1 As Integer, co2 As Integer Dim mRangos() 'La hoja activa, donde estan los gráficos oHojaActiva = ThisComponent.getCurrentController.getActiveSheet() 'Referencia a la celda A1, puede ser cualquier celda oCelda = oHojaActiva.getCellByPosition(0,0) 'Todos los gráficos de la hoja activa oGraficos = oHojaActiva.getCharts() 'Iteramos en cada uno For co1 = 0 To oGraficos.getCount() -1 'Accedemos a cada gráfico oGrafico = oGraficos.getByIndex(co1) 'Los rangos de datos del gráfico mRangos = oGrafico.getRanges() 'Iteramos en cada rango For co2 = LBound(mRangos) To UBound(mRangos) 'Reemplazamos la hoja por la hoja actual, es decir la activa mRangos(co2).Sheet = oCelda.getCellAddress.Sheet Next 'Reinsertamos los rangos de datos oGrafico.setRanges(mRangos) Next End Sub Saludos Mauricio P.D. Te envío a tu correo el archivo donde hice las pruebas -- _______________________________ Todo lo que no es dado es perdido
