miércoles, 6 de mayo de 2009

Estúpido Excel me hace programar feo

Suponete que estas creando un gráfico de Excel desde código.
Y suponete que estas creando un scatterplot
Vas agregando serie por serie
Primero esta el tema de que método usas para agregar la serie
Tenes el .add y el .newSeries del SeriesCollection
Ya de entrada venís mal Microchot, porque tu documentación dice que .add devuelve la serie que agregaste, y es mentira, no devuelve nada (es un Sub en lenguaje VB, o devuelve void en dialecto C#)
Por lo tanto, como .add tiene parámetros, pasale todo lo que quieras a la serie cuando la creas, porque sino despues anda a encontrarla en la colección (si, podes buscar la última, pero quién te asegura que se agregó ahí?)
Sino, podes usar .newSeries, que no tiene parámetros, agrega la serie vacía, y te devuelve una referencia a esa serie recién creada.
Bien, yo quiero ese, porque quiero manipular la serie.
Pero (gran PERO) al estúpido de Excel no le gustán las series vacías EN DETERMINADOS GRÁFICOS (scatter entre ellos). Luego, si vos creas una seríe vacía con .newSeries, y después le querés agregar valores con .values de la serie....
TE TIRA ERROR!!!!!!!!!!!!!!!!!!!!!!!!
O sea que no podés agregarle valores a una serie que se creo vacía (como carajo querés que le ponga valores entonces????)
Cualés son los workarounds???
Noooooooo, como pensas que va a haber un patch para esto (estoy hablando de Office 2000 a Office 2003, no se que pasa en 2007).
O te clavás con .add, o sino....
LE METÉS OTRO TIPO DE GRÁFICO!!!!!
Si!!!!!!! Mentile a Excel!!! Decile que estas creando un xlColumnClustered!!! (con ese funciona). Entonces el boludo no se queja. Cuando terminaste de agregar todo cambia el tipo de gráfico a scatter (o lo que vos realmente querías y te daba error) y ya esta!
Notas: No se como, pero aunque el xlColumnClustered no tiene XValues individuales por serie, sino compartidos (como el gráfico de líneas) milagrosamente Excel te acepta los XValues y cuando cambias el gráfico sabe cuales XValues son de cada serie (supongo que en un gráfico con XValues compartidos, las series pueden tener XValues individuales, pero el gráfico usa los de la primera serie, ignorando los de las otras)
Y si, Excel es así...

3 comentarios:

0089 dijo...

EL VB TIENE ESAS COSAS, QUE NUNCA VAMOS A ENTENDER.
DE TODAS FORMAS NO ENCONTRASTE NINGÚN ADD IN POR LA WEB QUE TE SIRVA?

JMT dijo...

Un addin para que? Ya me estuve yo construyendo un par, entre ellos uno para acomodar graficos y darles estilo

german dijo...

JMT fijate este website www.rapidplot.com es un addin for microsoft Excel, la pagina esta en ingles, pero yo lo instale en mi maquina que esta en español y funciona de maravilla.

Suerte