[RESUELTO] Pegar formula en una celda mediante macro.

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

[RESUELTO] Pegar formula en una celda mediante macro.

Mensaje por Chelo2 »

Quiero contar la cantidad de celdas no vacias en un rango, para lo cual, luego de haber llenado una serie de datos en dicho rango, quería pegar la siguiente formula:

=SUMA.PRODUCTO(A12:A1000<>"")

Para lo cual en la macro he insertado la siguiente línea:

Código: Seleccionar todo

oHojaCargo.getCellRangeByName("D"+UltContri2).SetFormula ("=SUMPRODUCT(A12:A1000<>"")") 
Sin embargo, cuando se ejecuta, da como resultado en la celda: "#NOMBRE?"

y como fórmula pegó lo siguiente:

=SUMA.PRODUCTO(A12:A1000<>"))

Quitó unas " (comillas) y agregó un ) (paréntesis). Por lo cual no dá el resultado.

Probé tambien con esta otra fórmula que ingresándola manualmente me da lo que busco:

=SUMA.PRODUCTO(A12:A1000<>ESBLANCO(1))

En este caso, pega correctamente la fórmula, pero no me da el resultado, sino que pone nuevamente "#NOMBRE?".

Hay algún otro modo en que pueda pegar esa fórmula o cualquier otra que me de como resultado el número de celdas con datos del rango mencionado???

Cabe señalar que busqué consultas similares, vi una respouesta de Mauricio sobre otra fórmula y me parece estar ponienodla correctamente, pero igualmente no me da.

Desde ya muchas gracias y un saludo desde Buenos Aires, Argentina.

Chelo2
Última edición por Chelo2 el Mar Feb 04, 2014 4:31 am, editado 1 vez en total.
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Pegar formula en una celda mediante macro.

Mensaje por SLV-es »

Hola de nuevo Chelo2

Disponemos de dos posibilidades para asignar una fórmula a una celda:

- La fórmula en inglés --> SetFormula

Código: Seleccionar todo

	oCelda.SetFormula ("=SUM(A5:B5)")
- La fórmula en tu idioma --> FormulaLocal

Código: Seleccionar todo

	oCelda.FormulaLocal = "=SUMA(A5:B5)"	
En el primer caso se pasa como un argumento (entre paréntesis) mientras que en el segundo se asigna (con un = )

Para pasar comillas en una cadena a una función debes crear una variable donde cargas las comillas, y luego concatenas con el resto de la expresión para formar una cadena.

Código: Seleccionar todo

Sub Main
	Dim oHoja As Object, oCelda As Object
	Dim Comillas As String

	Comillas = Chr(34) & Chr(34)

	oHoja = ThisComponent.Sheets(0)

	oCelda = oHoja.getCellRangeByName("A3")
	oCelda.FormulaLocal = "=SUMA.PRODUCTO(A12:A1000<>" & Comillas & ")"
End Sub
Saludos
 Editado: Solución agregada a mi blog: http://blog.open-office.es/basic/macro- ... da-de-calc 
+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
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Pegar formula en una celda mediante macro.

Mensaje por Chelo2 »

Perfecto SLV... pega la formula bien, pero no veo el resultado de la formula, sino la formula.

Pude ser porque las celdas estaban previamente seteadas como texto?? Si fuera así, como podría cambiar el formateo, y en ese caso ¿como debería ser?? como número para que me de el resultado de als celdas qeu contó??

Muchas gracias SLV.

Chelo2
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Pegar formula en una celda mediante macro.

Mensaje por mauricio »

Con que establezcas el formato en General debería mostrarte el resultado de la formular, tal vez tengas que editar de nuevo la celda y aceptar el cambio...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Pegar formula en una celda mediante macro.

Mensaje por Chelo2 »

Siii.. muchas graciasss!! probé con setar lasceldas previamente con formatos "Todos" y funcionó.

Les agradezco muchísimooo amigos...

Un abrazo...

Chelo2.
OpenOffice 4.1.3 en Windows 7
Responder