[Resuelto]Mi primer Macro ya me vencio...

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Flamma
Mensajes: 8
Registrado: Jue Abr 09, 2009 1:45 pm

[Resuelto]Mi primer Macro ya me vencio...

Mensaje por Flamma »

Buenos dias!
Soy usuario hace tiempo ya de OOo, leo el foro para poder encontrar cosas nuevas. Pero tengo un problema que seguramente es muy sencillo y no puedo encontrarle la vuelta.
En un documento de Calc hice un par de macros en Basic. Mientras lo estaba haciendo, todo perfecto. Cuando quize volver a abrir el documento, si bien estaban los macros, el documento no me reconocia las funciones...
Imagen

Imagen

Si alguien puede ayudarme estare muy agradecido!

Rodd.-
Última edición por RGB-es el Sab Abr 11, 2009 2:27 pm, editado 1 vez en total.
Razón: Marcar como resuelto
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Mi primer Macro ya me vencio...

Mensaje por RGB-es »

Las imágenes no se han cargado.
¿Podrías poner aquí el código de la macro, para que alguien con más conocimientos del tema la revise?
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Flamma
Mensajes: 8
Registrado: Jue Abr 09, 2009 1:45 pm

Re: Mi primer Macro ya me vencio...

Mensaje por Flamma »

Que raro lo de las imagenes... Pongo los links que ahi se ve lo que me paso:

http://www.imageunload.com/public/pview ... blema1.JPG

http://www.imageunload.com/public/pview ... blema2.JPG

El codigo del Macro es Visual sencillo, ahi lo pongo:

Código: Seleccionar todo


Const provintsug=1.12

Function Redond (valor)
Dim aux
Aux = valor - INT(valor)
if aux<>0 then
	If aux>5 then
		Redond = INT(valor) + 1
		else
		Redond = INT (Valor)
		end if
	else
	Redond = valor
	end if
End Function


Function precioprov(precio3, sugerido)
If (precio3<>0) AND (sugerido=0) then
	precioprov = precio3*0.9
	else if (precio3=0) and (sugerido<>0) then
			precioprov = sugerido*0.9*provintsug
			else
			precioprov = "Error"
			end if
	end if
end Function

Function multi(valor,multiplo)
Dim temp, mayor, menor, aux1, aux2
temp = valor / multiplo
menor=int(temp)* multiplo
mayor=menor + multiplo
If menor<> valor then
	aux1 = mayor - valor
	aux2 = valor - menor
	if (aux1 - aux2) > 0 then
		multi = menor
		else
		multi = mayor
		end if	
	else
	multi = INT(valor)
	end If

end Function


Sub Main

End Sub
FJCC-ES
Mensajes: 915
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Mi primer Macro ya me vencio...

Mensaje por FJCC-ES »

El único problema que veo con el codigo es en la linea

If aux >5 then

¿No debería ser

If aux >0.5 then

porque [valor - INT(valor)] tiene que ser < 1?

¿Puede subir el archivo para que nostros lo revisemos?
Flamma
Mensajes: 8
Registrado: Jue Abr 09, 2009 1:45 pm

Re: Mi primer Macro ya me vencio...

Mensaje por Flamma »

FJCC-ES escribió:El único problema que veo con el codigo es en la linea

If aux >5 then

¿No debería ser

If aux >0.5 then

porque [valor - INT(valor)] tiene que ser < 1?

¿Puede subir el archivo para que nostros lo revisemos?
Tenes razon!! Muy bien en eso!! La idea era generar un codigo en Basic que me redondee numeros con decimales a enteros. Asi quedo el codigo:

Código: Seleccionar todo

Function Redond (valor)
Dim aux
Aux = valor - INT(valor)
if aux<>0 then
	If aux>=0.5 then
		Redond = INT(valor) + 1
		else
		Redond = INT (Valor)
		end if
	else
	Redond = valor
	end if
End Function
Les comento que encontre el problema, no era codigo ni nada, simplemente que estaban los macros desactivos en la pestaña de seguridad del OOo... (Lo se, no comenten... ¬¬).

Aunq igual como vaya mejorando el codigo lo voy a ir actualizando asi van viendo como queda. La idea del documento, es la de generar carteles con caracateristas y precios tratando de que los datos que tengo que ingresar el usuario sean los minimos.

El lugar donde trabajo es un local de tecnologia en Argentina y estamos muy sujetos a la variacion del dolar. O sea que hacemos toda la carteleria del local una vez a la semana y tenemos mas de 5000 articulos O.O

Seguramente tendre que pedir ayuda para relacionar el documento Calc con alguna base de datos. Ya tendre tiempo para eso...

Por lo pronto, muchas gracias!!!
jharamez
Mensajes: 2
Registrado: Jue Abr 16, 2009 4:28 am

Re: [Resuelto]Mi primer Macro ya me vencio...

Mensaje por jharamez »

Hola

te doy una pequeña idea para simplificar codigo ;)

Function Redond (valor)
Redond = INT(valor + 0.5)
End Function

bye (Y)
Responder