Página 1 de 1

codigo no se ejecuta por cambio de version de openoffice

Publicado: Mar May 17, 2016 12:12 am
por jhonfredy
Cordial saludo,

Tengo un código que se ejecuta bien en un pc que tiene window XP con versión de openoffice 3.6.5.2, pero este mismo código no se ejecuta en un pc que tiene window 7 con versión de openoffice 4.1.0.

Creo que es por el cambio de versión. Y creo que es por el directorio de las variables.

Alguien me puede ayudar?

Observación: este código me lo facilitó un participante de este foro que tiene Nick fornelasa.

Agradezco sus aportes.

Gracias,

El código es el siguiente:

Código: Seleccionar todo

sub BuscarCopiar
    dim args1(2) as new com.sun.star.beans.PropertyValue
    
      document = ThisComponent.CurrentController.Frame
     dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
   args1(1).Name = "By"
  args1(1).Value = 1
   args1(2).Name = "Sel"
  args1(2).Value = false
            tDoc = ThisComponent.CurrentController
          oSheet = tDoc.ActiveSheet
          
                   tDoc.Select(oSheet.GetCellRangeByName("A1"))
                   dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
                   
           Edgar = ThisComponent.Sheets.GetByName("edgar")
   args1(0).Name = "SearchItem.SearchString"
  args1(0).Value = "EDGAR FRANCISCO SOTO"
  
                   dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
                   
          inicio = (ThisComponent.GetCurrentSelection.CellAddress.Row + 1)
          
                   dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
                   
            dato = ThisComponent.GetCurrentSelection.String
  args1(0).Value = Trim(dato)
  
                   dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
                   
             fin =  (ThisComponent.GetCurrentSelection.CellAddress.Row + 1)
           rango = oSheet.GetCellRangeByName("A"+inicio+":K"+fin)
           
               tDoc.Select(Rango)
               dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
               tDoc.Select(Edgar.GetCellRangeByName("A1"))
               dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
               tDoc.Select(oSheet.GetCellRangeByName("A1"))
               
   args1(0).Name = "SearchItem.SearchString"
  args1(0).Value = "EDGAR FRANCISCO SOTO"
  
               dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
               MsgBox "Hecho"
end sub

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Mar May 17, 2016 12:32 am
por fornelasa
pero este mismo código no se ejecuta en un pc que tiene window 7 con versión de openoffice 4.1.0.
¿No se ejecuta nada? ..... o ..... ¿En que linea te marca error?

No creo que el problema sea por la versión del programa.

Así a primera instancia parecería que tenemos el estado de las macros a un nivel alto en vez de un nivel medio (Herramientas <> Opciones <> Seguridad <> Seguridad de macros)
Saludos, Federico.

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Mar May 17, 2016 2:51 pm
por jhonfredy
Al dar ejecutar sale el mensaje "No se encontró la expresión buscada", le doy aceptar y vuelve a salir el mismo mensaje. Después sale el msgBox: Hecho. Al revisar lo copiado solo aparecen copiadas tres líneas que supongo que son las tres primeras líneas de la hoja ventas.

Lo que copia aparece en la hoja edgar del adjunto de este mensaje.

Tener en cuenta que el código lo que hace es copiar la información que hay la hoja ventas correspondiente en este caso a edgar y la lleva a la hoja edgar.

Este mismo código lo ejecuto en el otro pc que tiene la versión anterior de openoffice y lo ejecuta bien.

Gracias,

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Mar May 17, 2016 3:17 pm
por PepeOooSevilla
Hola.
He ejecutado tu macro cambiando esta línea

Código: Seleccionar todo

args1(0).Value = "EDGAR FRANCISCO SOTO"
por

Código: Seleccionar todo

args1(0).Value = "EDGAR FRANCISCO SOTO A."
(las dos veces que aparece) tal como figura en la celda B90 de la hoja "ventas" y funciona en LibreOffice Calc 5.1.3.
Saludos cordiales.

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Mar May 17, 2016 10:39 pm
por jhonfredy
Cordial saludo PepeOooSevilla, hice ese cambio, y tengo la seguridad de macros en nivel bajo pero sigue copiando solamente lo que comente en el mensaje anterior. Debe ser algo especifico que sucede con la versión 4.1.0

Gracias,

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Mar May 17, 2016 10:56 pm
por fornelasa
También he realizado pruebas y todo funciona normal.
Insisto, no creo que sea la versión del programa, pero suponiendo que lo fuera entonces debemos actualizarla por la versión 4.1.2
Envía el archivo que te da error con la macro adentro.

Saludos, Federico.

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Mié May 18, 2016 12:38 am
por jhonfredy
Adjunto el archivo que es el mismo que he enviado. Le anexe otra hoja que dice código y ahí está. Sin embargo, ya está incorporada en el organizador de macros.

Gracias,

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Mié May 18, 2016 11:29 pm
por fornelasa
Pues en mi PC se ejecuta bien.
Sugiero que te actualices a la version 4.1.2 de AOO
http://www.openoffice.org/download/
Saludos, Federico.

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Jue May 19, 2016 5:02 am
por jhonfredy
Tan raro, en todo caso mil gracias por su atención.

Re: codigo no se ejecuta por cambio de version de openoffice

Publicado: Jue May 19, 2016 7:19 pm
por fornelasa
Solo para no dejar, he realizado pruebas en la versión 4.1.0 y todo funciona normalmente.
Saludos, Federico.