Buenos días,
Tengo lo siguiente:
Hoja1: Numero Nombre ; 1 Pepe ; 2 Juan ; 3 Carlos (una tabla de 2 columnas -A Numero y B Nombre- con 4 filas -primer fila numero y nombre y las siguientes 3 el numero con su nombre)
Hoja2: Numero: X Nombre: buscarv (en esa hoja yo en numero inserto un valor del 1 al 3 y me figura el nombre en la casilla de al lado)
Es una simplificación de mi problema, pero yo quisiera hacer un acceso de teclado (o botón, lo que sea mas comodo) que:
*en Hoja2 inserte el primer número de la tabla en Hoja1 (actualizandose la hoja con el nombre por buscarv)
*haga una copia de la hoja en otra pestaña
*la renombre con el nombre correspondiente al que figure en la hoja (por ejemplo Pepe)
*y repita el proceso hasta que finalice con la tabla
Realmente no sé ni por donde arrancar,
Gracias
edito: con la grabadora de macros hice la prueba y obtuve esto:
sub copiarHoja
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(2) as new com.sun.star.beans.PropertyValue
args3(0).Name = "DocName"
args3(0).Value = "Sin título1"
args3(1).Name = "Index"
args3(1).Value = 32767
args3(2).Name = "Copy"
args3(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Name"
args4(0).Value = "pepe"
dispatcher.executeDispatch(document, ".uno:RenameTable", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Nr"
args5(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$A$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "StringName"
args7(0).Value = "2"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args7())
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
rem ----------------------------------------------------------------------
dim args9(0) as new com.sun.star.beans.PropertyValue
args9(0).Name = "ToPoint"
args9(0).Value = "$B$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args9())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args11(2) as new com.sun.star.beans.PropertyValue
args11(0).Name = "DocName"
args11(0).Value = "Sin título1"
args11(1).Name = "Index"
args11(1).Value = 32767
args11(2).Name = "Copy"
args11(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args11())
rem ----------------------------------------------------------------------
dim args12(0) as new com.sun.star.beans.PropertyValue
args12(0).Name = "Name"
args12(0).Value = "juan"
dispatcher.executeDispatch(document, ".uno:RenameTable", "", 0, args12())
rem ----------------------------------------------------------------------
dim args13(0) as new com.sun.star.beans.PropertyValue
args13(0).Name = "Nr"
args13(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args13())
rem ----------------------------------------------------------------------
dim args14(0) as new com.sun.star.beans.PropertyValue
args14(0).Name = "ToPoint"
args14(0).Value = "$A$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args14())
rem ----------------------------------------------------------------------
dim args15(0) as new com.sun.star.beans.PropertyValue
args15(0).Name = "StringName"
args15(0).Value = "3"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args15())
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
rem ----------------------------------------------------------------------
dim args17(0) as new com.sun.star.beans.PropertyValue
args17(0).Name = "ToPoint"
args17(0).Value = "$B$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args17())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args19(2) as new com.sun.star.beans.PropertyValue
args19(0).Name = "DocName"
args19(0).Value = "Sin título1"
args19(1).Name = "Index"
args19(1).Value = 32767
args19(2).Name = "Copy"
args19(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args19())
rem ----------------------------------------------------------------------
dim args20(0) as new com.sun.star.beans.PropertyValue
args20(0).Name = "Name"
args20(0).Value = "carlos"
dispatcher.executeDispatch(document, ".uno:RenameTable", "", 0, args20())
end sub
y tengo dos problemas:
- el código es horrible y seguro se puede resumir muchisimo
- el cambio de valor lo tuve que hacer a mano, por lo que deberia haber un array con todos los valores de la tabla y que haga una iteración con cada uno?