Me tomo el permiso de adjuntar el mensaje de Alejandro Rivas, quien me
escribió personalmente, en el cual explica lo que anda buscando, de
forma tal que los demás usuarios pueden seguir la conversación, y LO MÁS
IMPORTANTE sugerir soluciones al planteo (dos cabezas o más piensan más
que una :-) ).
Mi respuesta sigue a este correo (para que puedan seguir la
conversación aquellos usuarios que emplean un agente de correo que
ordena por "conversaciones" o asunto).
Alexandro Colorado escribió:
On Wed, 09 May 2007 17:26:49 -0500, Ariel Constenla-Haile
<[EMAIL PROTECTED]> wrote:
Hola que tal, tengo este script quizas te sirva, el script basicamente
genera duplicados de hojas haciendo un copy-paste e insertando
adicionalmente una informacion desde un array.
Aqui esta el script:
REM ***** BASIC *****
REM
REM Script to insert sequencially the list of servers
REM to execute you need to select the starting page +1
REM and then select the ending page on the 'for Loop'
REM
'Load all the variables including the array
Sub LabelSheet
Dim oCell as Variant
Dim firstDoc as Variant
Dim oSheet as Variant
Dim title() as Variant
Dim titulo()
Dim x
REM title array takes the list from a CSV dump
title=Array("otherhost1",_
"otherhost2",_
"otherhost3",_
"otherhost4",_
"otherhost5",_
"otherhost6")
REM x works as a range, it start from the begining of the ARRAY
REM y is used to put the final starting page adding the value of
REM the "first page"
firstDoc = ThisComponent
for x = 0 to 6
y= x
oSheet= firstDoc.getSheets().getByIndex(y)
REM GetCellbyPosition will indicate the cell of the title
REM SetString will insert the text into the cell
oCell=oSheet.GetCellbyPosition( 1,2 )
firstDoc.CurrentController.Select(oCell)
oCell.SetString(title(x))
REM for additional modification include the following:
REM Position of the cell -> GetCellPosition
REM Content of the cell -> SetString
oCell2=oSheet.GetCellbyPosition( 0,1 )
firstDoc.CurrentController.Select(oCell2)
oCell2.SetString("Server")
Next x
End Sub
si tienes alguna pregunta lo podemos comentar en la lista. Basicamente
algunas notas es que tengas en cuenta que uso nombres de hojas propias
asi que en vez de decir Hoja 1 o Sheet 1.
Puedes ver tambien este otro blogpost:
http://my.opera.com/Jzarecta/blog/automating-work-with-basic
Ahi explico un poco el proceso donde 'loopeo' la accion de generar una
hoja, insertarle el contenido.
--Alexandro Colorado
OpenOffice.org
Community Contact // Mexico
http://www.openoffice.org
Twitter: http://www.twitter.com/jza
Jabber: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
***************************************************************
Aclarame un poco qué deseas y te envio un doc. con ejemplos
'=============================================================
Gracias extensas por su atención y disculpe lo extenso de esta descripción
El Kid de esto es que califico (muchísimos) examenes hechos en hoja
electrónica
(algunos lo hacen el OO115 y otros lo hacen en excel 97). En ocasiones el
alumno (o la alumna) debe crear tres o mas archivos como parte de la
práctica.
En cada uno de ellos Hace una parte de contenido el cual sigue en el otro
archivo y asi sucesivamente.
Para calificar, abro los archivos y tego que estar pasando entre uno y otro
para revisar los contenidos (por ejemplo el nombre del alumno, alguna
suma, o
algunos datos digitados en celdas específicas.
Me resulta muy trabajoso. Entonces, lo que hago es codificar los nombres de
archivo, cuando recibo de c/estudiante. Luego para calificar, con una macro
abro los archivos, leyendo codigos en una hoja ya abierta, (de tal
manera que
sólo digito los códigos en las celdas, luego la macro lee, completa la linea
para abrirlos. Así los abro de un clikso.
Ya abiertos. Lo que hago (o necesito) es trasladarme entre una y otra
ventana
de los archivos abiertos para revisar los contenidos. De paso, que estoy en
una ventana de un archivo, leer los datos de ciertas celdas y
compararlos con
los del ejericio para determinar si el alumno (o la alumna) lo hizo bien
o no,
y calificar.
Por ejemplo, en el primer archivo se le pide que digite entre las celdas
C3 a
C5 cantidades de dinero. Es costumbre que ellos digiten $ 2,000.00 en
lugar de
2000.00 (incorrecto!).
Si pudiera recuperar el dato de C3 del archivo 1 con macro, lo puedo
comparar
con 2000.00 y determinar si esta bueno (y asi con los demas) para calificar.
Me paso al segundo archivo. Por ejemplo ahí tiene que llenar numeros
entre las
celdas D3 y D7 para calcular la suma en D8. Así con la macro podría leer el
valor de D8 y establecer si corresponde a la suma.
Me paso al archivo 3 y ahí tienen un peque?o cuadro en el que deben colocar
letra negrilla, centrada en los títulos de columnas de datos. Es una lista
peque?a y suponiendo que la inician en B2. Luego con la macro podría leer el
dato de B2 y ver si es Negrilla.
En resumen, lo que busco es ..
Digamos algo así como la forma de reemplazar el “Thiscomponent” del archivo
actual por el archivo que tengo al frente
(Supongo que podría asignar una pulsación de tecla para que corra una macro
deteminada para que me vaya guiando en el proceso).
'----------------------------------
'Captar el nombre del archivo actual
' ?? esto si no tengo ni idea
' oNombreArchActual=..?
msgbox oNombreArchActual
'------------------------------
'Captar el nombre de hoja actual
oHojaActual3=ThisComponent.CurrentController.ActiveSheet.Name
'o en este
oHojaActual3=ThisComponent.getsheets().getbyindex(0).getspreadsheet().getname()
msgbox oHojaActual3+" “Es correcto ? '"
'-----------------------------------------
' Pasarme de una hoja a otra en el documento actual
Thiscomponent.getcurrentcontroller().Setactivesheet(thiscomponent.getsheets().getbyname(oHojaActual3))
'------------------------------------------
' Captar un dato de una celda especifica del documento actual
oDatoArch3=
ThisComponent.getSheets().getByIndex(0).getCellByPosition(1,5).getString()
msgbox oDatoArch3+” Es correcto ?”
' Ponerle el correcto en la siguente celda si es incorrecto
ThisComponent.getSheets().getByIndex(0).getCellByPosition(1,6).SetString(oDatoArch3Corr)
'------------------------------------------
'Pasarme a la siguiente hoja del siguiente archivo abierto.
' -????
'
'REPETIR los códigos para LA REVISION DE DATOS....
'
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]