Macro de StarOffice

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
raranda
Mensajes: 1
Registrado: Dom May 24, 2009 1:17 am

Macro de StarOffice

Mensaje por raranda »

Tengo una macro realizada en StarOffice y necesito, que la misma me funcione en OpenOffice 3.1.0 para Windows. Me da el siguiente error: "Variable de objeto no establecida"
Esta macro la función que realiza es tomar datos un archivo y actualizarlos en Write del OpenOffice. Le dejo el ejemplo y si me prodian sugerir una posicible solución.
Muchismas Gracias.

Sub DOCCALUpdateFields
On error Goto ErrorHandler
With ActiveWindow.Selection
nomb = ActiveDocument.Name
dire = ActiveDocument.Path
tipo = RIGHT(dire,2)

DatFile = dire + "\" + nomb + ".DAT"
iNumber = Freefile
Open DatFile For Input As iNumber
Line Input #iNumber, linea
.SetUserFieldValue( "CODIGO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "DESCRIPC", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "EMISION", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FECEMI", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REEMPLAZA", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REV1", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FEC1", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "MOT1", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "NC1", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REV2", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FEC2", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "MOT2", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "NC2", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REV3", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FEC3", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "MOT3", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "NC3", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REV4", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FEC4", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "MOT4", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "NC4", linea )

If tipo = "MA" then
Line Input #iNumber, linea
.SetUserFieldValue( "SECCION", linea )
Elseif tipo = "PI" then

Elseif tipo = "IT" then
Line Input #iNumber, linea
.SetUserFieldValue( "PRODUCTO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "PLANO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REVPLANO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "OPERACION", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "PROCESO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REALIZO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FECREA", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "APROBO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FECAPR", linea )
Elseif tipo = "PC" then
Line Input #iNumber, linea
.SetUserFieldValue( "PRODUCTO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "PLANO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REVPLANO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "OPERACION", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "PROCESO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REALIZO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FECREA", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "APROBO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FECAPR", linea )
Elseif tipo = "PP" or tipo = "PE" or tipo = "PR"then
Line Input #iNumber, linea
.SetUserFieldValue( "TIPO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "PLANO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REVPLANO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "CLIENTE", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "PLANOCLIENTE", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REVCLIENTE", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "REALIZO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FECREA", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "APROBO", linea )
Line Input #iNumber, linea
.SetUserFieldValue( "FECAPR", linea )
End If
Close #iNumber
End With
MsgBox "Datos del documento actualizados exitosamente"

ErrorHandler:
Reset
ActiveWindow.Selection.UpdateFields

End Sub
Néstor Londoño B.
Mensajes: 261
Registrado: Lun Dic 01, 2008 7:59 am
Ubicación: Pereira, Colombia

Re: Macro de StarOffice

Mensaje por Néstor Londoño B. »

Saludos: Cuando sucede eso, un pantallazo nos lleva al IDE y nos muestra una linea en la macro, como en su macro Ud no ha definido las variables debe DIMensionarlas, Permítame sugerirle que copie sus datos en una Base de datos y realice el formulario respectivo, es mucho mas fácil.
Néstor
S,O. Ubuntu 15 AOO_4.0.1
Responder