[RESUELTO]Error con Funciones y Matrices

¿Nuevo en Apache OpenOffice? ¿No sabe cómo comenzar o dónde hacer su pregunta? ¡Este es el lugar!
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Responder
Danielmm
Mensajes: 3
Registrado: Dom Ene 21, 2018 2:39 pm

[RESUELTO]Error con Funciones y Matrices

Mensaje por Danielmm »

Buenas Tardes,

Estoy siguiendo el manual de Maurio sobre Ooo Basic, en una de las macros que referencia me lanza un error que no he sido capaz de solucionar. He estado buscando sobre el problema y no consigo ninguna pista por la que continuar, he comprobado que la macro sea correcta en varias publicaciones. Les rogaria me echaran un cable, aunque sea al cuello jjjjj. Gracias por anticipado. :D

Sistema Operativo:
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.51-2 (2017-12-03) x86_64 GNU/Linux
Aplicación:
LibreOffice Version: 4.3.3.2 Build ID: 430m0(Build:2)

Macro:

Código: Seleccionar todo

Sub Sumando2()
Dim mDatos() As Integer
Dim iSuma As Integer

	'Llenamos la matriz con la funcion Array
	mDatos() = Array(10,20,30,40,50,60,70,80,90)
	MsgBox mDatos( 0 )
	'Intentamos sumar la matriz
	iSuma = SumaMatriz( mDatos() )

	MsgBox Str( iSuma )

End Sub

Function SumaMatriz ( Datos() )
 Dim co1 As Integer
 
     For co1 = LBound( Datos() ) To UBound( Datos() )
         SumaMatriz = SumaMatriz + Datos( co1 )
     Next
 
End Function
Error:
BASIC syntax error.
Sub procedure or function procedure SumaMatriz already defined.

Help
Danielmm
Última edición por Danielmm el Lun Ene 22, 2018 1:28 pm, editado 1 vez en total.
OpenOffice 4.3.3.2 en Linux Debian 3.16.51-2 (2017-12-03) x86_64 GNU/Linux
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Error con Funciones y Matrices

Mensaje por xiseme »

... SumaMatriz already defined.
Pareciera que en tu código la función «SumaMatriz» está puesta más de una vez. ¡Vamos!, que es muy posible que la tengas duplicada.
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Error con Funciones y Matrices

Mensaje por RMG »

Hola,

Me da la sensación que no has copiado bien la macro. Prueba esta.

Código: Seleccionar todo

Sub Sumando2()
Dim mDatos() As Integer
Dim iSuma As Integer

   'Llenamos la matriz con la funcion Array
   mDatos() = Array(10,20,30,40,50,60,70,80,90)
   For i  = LBount(mDatos()) To UBound(mDatos())
   MsgBox mDatos(i)
   'Intentamos sumar la matriz
   iSuma = iSuma + mDatos(i)
	Next
   MsgBox iSuma

End Sub
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Danielmm
Mensajes: 3
Registrado: Dom Ene 21, 2018 2:39 pm

Re: Error con Funciones y Matrices

Mensaje por Danielmm »

Buenas,

Si, si,...Esa fue mi primera opción y revise la macro y la función unas cuantas miles de veces. Incluso busque nuevas referencias al ser una macro con una función que viene en el manual de Mauricio por si el error habia sido reportado ya... Pero nada, y no quiero seguir avanzando con esta duda.

El error lo lanza en la función " SumaMatriz " al pasarle el tipo y en teoría en todas las fuentes que he consultado debería funcionar. A mi me sigue lanzando el error:
BASIC syntax error.
Sub procedure or function procedure SumaMatriz already defined.

Disculpar una rectificación al código este es exacto al que aparece en el manual, en el anterior faltaban pasar el parámetro datos como variant y el tipo integer para la función.

Código: Seleccionar todo

Sub Sumando2()
Dim mDatos() As Integer
Dim iSuma As Integer

   'Llenamos la matriz con la funcion Array
   mDatos() = Array(10,20,30,40,50,60,70,80,90)
   MsgBox mDatos( 0 )
   'Intentamos sumar la matriz
   iSuma = SumaMatriz( mDatos() )

   MsgBox Str( iSuma )

End Sub

Function SumaMatriz ( Datos() As Variant ) As Integer
Dim co1 As Integer

     For co1 = LBound( Datos() ) To UBound( Datos() )
         SumaMatriz = SumaMatriz + Datos( co1 )
     Next

End Function
OpenOffice 4.3.3.2 en Linux Debian 3.16.51-2 (2017-12-03) x86_64 GNU/Linux
Danielmm
Mensajes: 3
Registrado: Dom Ene 21, 2018 2:39 pm

Re: Error con Funciones y Matrices

Mensaje por Danielmm »

:crazy: Buenas otra vez,
Tengo que pedir disculpas, ha sido todo un "venirme arriba" de principiante. Resulta que el error que lanza es más claro que el agua, me dice que la matriz ya esta declarada, y es así en un ejemplo anterior ya estaba declarada.
Reitero mis disculpas por la perdida de tiempo, aunque este tiempo de andar como pollo sin cabeza me ha servido de mucho.
Gracias, un saludo. :oops:
Última edición por Danielmm el Lun Ene 22, 2018 1:27 pm, editado 2 veces en total.
OpenOffice 4.3.3.2 en Linux Debian 3.16.51-2 (2017-12-03) x86_64 GNU/Linux
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Error con Funciones y Matrices

Mensaje por RMG »

Hola,

Recuerda marcar como resuelto, nos ayuda a mantener un foro más organizado.

https://forum.openoffice.org/es/forum/v ... f=3&t=2668

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Responder