Duplicar hojas y renombrarlas con Macros

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:

  1. el código es horrible y seguro se puede resumir muchisimo
  2. 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?

Una idea. “Datos tabla” genera cuadros agrupados por etiquetas o códigos del campo que elegiste para las filas. Si has generado la tabla activando la opción “Activar análisis detallado”, para que almacene los datos con los que ha generado la tabla y si haces doble click en una celda, LibreOffice genera automáticamente una nueva hoja con los datos que sustentan a esa celda.

Haz la prueba manualmente con un archivo csv o búscalo en la web. Una vez que te funcio, trata de generar una macro qeu recorra las celdas seleccionadas dentro de la tabla dinámica. Otra alternativa, es que flexibilices el código que grabas y lo ejecutes con una orden de teclado (Ctrl+Tecla).

Si lo que quieres es algo completamente automatizado, es mejor que pienses en bases de datos.

Te aclaro. No soy programador de macros. En mi caso lo haría por el método que te di en el primer párrafo.