Duplicar hojas de excel en otro libro

He creado un excel que contiene hojas, hojas ocultas, botones y codificación en VBA.

Algunos compañeros del trabajo se han interesado por el, y quieren añadir esas hojas en sus archivos de excel.

VBA lo exporto copiando mi excel en su ordenador, abriendo los dos, y en el panel de VBA muevo los módulos y los formularios para copiarlos en su libro.

Mi problema es con los libros con fórmulas y los botones que activan macros (módulos). En los libros he descubierto que si voy a DATOS>EDITAR ENLACES y ahí rompo los enlaces (por algún motivo no me deja seleccionar otro origen) entonces las fórmulas funcionan bien, pero los botones que apuntan a macros no funcionan, y he de seleccionar uno a uno de nuevo el modulo.

Tengo 10 compañeros, y me gustaría que no dependienran de mi para hacer estas cosas (no son muy hábiles) por lo que:

  • ¿Existe alguna forma de hacer esto más sencillo? (Exportando e importando, o generar un instalable...)
  • ¿Cómo copio las hojas sin que se modifiquen las fórmulas y los botones?
  • Cuando selecciono "Todas las hojas" ¿Cómo puedo hacer que incluya las ocultas?

El vba puedo pasarles el .vas que genera el exportador... Esto no me preocupa, es fácil. Solo son las páginas con sus fórmulas y botones los que se "corrompen" apuntando al libro original en vez del nuevo.

Respuesta
1

¿Y si lo haces al revés? Creas una copia de tu libro y en ese libro agregas las hojas de tus amigos.

jajajajajajaa! La idea no es mala, pero ya lo intente :)

Sus excel tienen también botones y código VBA... la mayoría de ellos usan libros que les creé yo hace un tiempo. (En parte gracias a este foro)

Try again... :(

(Gracias igualmente!)

Tengo esto para crear el botón, escribir un texto en el botón y asignarle una macro

Sub insertar()
'Por.DAM
    For i = 1 To 3
        opcion = i 'cambiar el valor de opción por el que se necesite en cada hoja
        'Sheets.Add
        'valores opara cada hoja
        Select Case opcion
            Case 1
                celda = "D2" 'celda en donde quieres el botón
                nombremacro = "ejecutar" 'nombre de la macro a llamar
                textoboton = "Ejecutar Proceso" 'texto que aparece en el botón
            Case 2
                celda = "E5"
                nombremacro = "imprimir"
                textoboton = "Imprime reporte"
            Case 3
                celda = "F3"
                nombremacro = "mensaje"
                textoboton = "enviar mensaje"
        End Select
        Set cl = Range(celda) 'celda en donde quieres el botón
        clLeft = cl.Left
        clTop = cl.Top
        clWidth = cl.Width 'ancho del botón
        clHeight = cl.Height * 2 'alto del botón
        ActiveSheet.Shapes.AddShape(msoShapeBevel, clLeft, clTop, clWidth, clHeight).Select
        Selection.OnAction = nombremacro
        Selection.Text = textoboton
        Selection.PrintObject = False 'botón no imprimible
    Next
End Sub
Sub ejecutar()
MsgBox "macro ejecutar"
End Sub
Sub imprimir()
MsgBox "macro imprimir"
End Sub
Sub mensaje()
MsgBox "macro mensaje"
End Sub

Espeto te sirva

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas