Hola Leonardo... Hola a todos... Si tuviste la iniciativa para buscar y hacer tu macro desde VBA Excel, te invito a mantener esta iniciativa para aprender OOo Basic que veras, tomandole el modo es muy divertido...
Si, hay bastante documentación, casi toda en ingles, puedes empezar con lo siguiente: El compañero Ariel tiene en su sitio un apartado de OpenOffice.org con cosas muy interesantes http://www.arielconstenlahaile.com.ar/ooo/index.php Puedes descargar unos apuntes que estoy preparando de programar con OOo Basic, ojo, son notas solo para noveles en la programación http://www.esnips.com/doc/d92d3790-17a7-4184-a594-4f6b7f499540/Aprendiendo-OOo-Basic La macro que anexas no es larga ni complicada, pero ando corto de tiempo, si no te urge, el fin de semana te la "traduzco" a OOo Basic con comentarios y todo para que veas las diferencias... Saludos a todos... Mauricio -----Mensaje original----- De: [EMAIL PROTECTED] en nombre de Leonardo Spaltro Enviado el: lun 26/05/2008 14:42 Para: [email protected]; [EMAIL PROTECTED] Asunto: [d_es] Pasar de VBA a OOo BASIC --> ¿¿?? Hola comunidad, ante todo les agradezco su participación en la lista, leo -casi- todos los mails y muchos me resultan de utilidad. El presente es para hacerles una consulta relativa a OOo Basic. Resulta que gracias a un librito básico, mucha búsqueda en google y mucho ensayo y error, logré hacer el código VBA en Excel que figura al final. (Anticipo que no tengo formación en informática y lo que sé lo adquirí probando mucho y leyendo otro tanto y así y todo, me falta muuuuuuccchhooooo) Bueno, también hace un tiempo que trato de usar lo menos posible MS Excel en favor de OOo Calc por lo que ahora intento ¿traducir? este macro de Excel a una macro de OOo Basic pero no logro hacer que funcione. Es más, no puedo hacer que avance de: sub Cargar_Asiento rem ---------------------------------------------------------------------- rem define variables dim document as object dim hoja as object rem ---------------------------------------------------------------------- rem get access to the document document = StarDesktop.CurrentComponent hoja = document.Sheets.getByName("Carga Asientos") <Continúa el código que no puede probar> End Sub Cuando testeo el código con F8 cuando llega a la línea "hoja = document..." me aparece el siguiente error: "Error de ejecución de BASIC. Propiedad o método no encontrados". No existe error en el nombre de la hoja (por si sirve de algo, digo). Utilicé la "Guía de Programación StarOffice para BASIC" y otros documentos de http://es.openoffice.org/servlets/ProjectDocumentList?folderID=146&expandFolder=146&folderID=0y no encuentro el error. ¿Alguna idea para orientarme?? De paso -por si alguien tiene el tiempo como para ver el código del final- les agradezco si me pueden ayudar en conocer algunas "traducciones" de las ¿órdenes? más habituales. Por ej. para seleccionar una celda he leido que se usa getCelByPosition(1,1), que sería B2, pero no pude encontrar cómo hacer para usar el nombre de la celda "B2" en vez de (1, 1). Bueno, gracias por su tiempo y disculpen por lo extenso del mail, Atte., Leonardo Spaltro. PD1: he intentado usar la grabadora de macro y luego mirar el código pero su estructura es muy distinta a lo que conozco en VBA y no logro entender su lógica para luego adaptarlo a lo que quiero. PD2: otra cosa que me resulta dificil de comprender de la Guía de Programación es eso de los servicios "com.sun.star.(...)" >>>>>>>>>>>>>>>>>>>> INICIO CÓDIGO - VBA Excel <<<<<<<<<<<<<<<<<<<<<<<<<<<< Sub Cargar_Asiento() Dim nro_asiento 'Activa el bloqueo de actualización de la pantalla (para no mostrar todo lo que va haciendo la macro y evitar parpadeos del monitor) Application.ScreenUpdating = False 'Consistencia de la Carga If Range("H65") = "Asiento Correcto" Then 'Copiando Carga de Datos de Asiento Range("A11:I61").Select Selection.Copy 'Ubicarse al inicio de la base de asientos en la hoja "Base Asientos" Sheets("Base Asientos").Activate ActiveSheet.Range("E2").Select Selection.End(xlDown).Select 'Baja hasta la última celda llena Selection.Offset(1, -3).Select 'Baja una celda más, es decir a 'la primera vacía y tres columnas a la 'izquierda 'Pegar Datos de Asiento Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'Inicio Sheets("Carga Asientos").Activate Application.CutCopyMode = False Range("D5").Select 'Mensaje Indicando Nro de Asiento Sheets("Carga Asientos").Activate nro_asiento = Range("C5").Value MsgBox ("Se ha contabilizado el asiento número " & nro_asiento) 'Numerar próximo Asiento 'Range("C5").Value = Nro_Asiento + 1 Sheets("Carga Asientos").Activate Range("M4").Select Selection.Copy Range("C5").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'Limpiar Carga de Asiento Range("D11:E61,G11:H61,D5,E7").Select Selection.ClearContents Range("D5").Select 'Desactiva el bloqueo de actualización de pantalla Application.ScreenUpdating = True Else MsgBox ("Existen errores en la carga del Asiento, por favor, verifique su consistencia") End If End Sub >>>>>>>>>>>>>>>>>>>> FIN CÓDIGO <<<<<<<<<<<<<<<<<<<<<<<<<<<<
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
