Copia contenido de hoja activa n veces ( n:digitado) a partir de la hoja activa (a la derecha)

Tenemos un archivo excel con:

A     B.........

1

Hoja1 Hoja2 Hoja3 Hoja4

Si me ubico en la hoja1 (hoja activa) y al ejecutar la macro, esta debe preguntarme cuantas veces (n:digitado) voy a copiar la hoja activa (hoja1) a partir de esta a la derecha, Ejemplo:

Ejecute macro

"Digite el No. De veces a copiar:" 2

Entonces como resultado debe arrojarme:

Hoja1 Hoja1(1) Hoja1(2) Hoja2 Hoja3 Hoja4

Otro ejemplo:

Si me ubico en la hoja4 (hoja activa) y al ejecutar la macro, esta debe preguntarme cuantas veces (n:digitado) voy a copiar la hoja activa (hoja4) a partir de esta a la derecha, Ejemplo:

Ejecute macro

"Digite el No. De veces a copiar:" 1

Entonces como resultado debe arrojarme:

Hoja1 Hoja1(1) Hoja1(2) Hoja2 Hoja3 Hoja4 Hoja4(1)

2

2 respuestas

Respuesta
2

.25/08/16

Buenas noches, Luis

Aquí comparto la rutina que estás buscando.

Accedé al Editor de VBA (Atajo: Alt + F11), insertá un módulo - si no tuvieras uno ya- y pegá el siguiente código:

Sub MultHojas()
Copias = 0
Do
Copias = InputBox("Indicar cantidad de copias de esta hoja: " & ActiveSheet.Name & Chr(10) & "(Vacío para salir)", "RUTINA PARA MULTIPLICAR HOJAS", "")
Loop While Copias = 0
If Copias = "" Then Exit Sub
LaHoja = ActiveSheet.Name
For cont = 1 To Copias
       Sheets(LaHoja).Copy after:=ActiveSheet
Next
MsgBox "Listo!, se agregaron " & cont & " hoja" & IIf(cont > 1, "s.", ".")
End Sub

Dado que usarás este procedimiento en distintas hojas de tu archivo, tal vez quieras asignarle un atajo de teclado, de forma tal que puedas utilizarla más fácilmente.

Para lo del atajo, haz:

"Vista" | "Macros" (o con atajo: Alt + F8)

Selecciona allí (un sólo click sobre) la nueva macro ingresada y presiona el botón "Opciones". En la pantalla siguiente ingresa una letra a la que quieres asociar la macro. Por supuesto evita aquellas que ya están siendo utilizadas por MS Excel como atajo (v.g. Ctrl + C, Ctrl + X, etc)

Luego de aceptar, cuando presiones Ctrl más la letra indicada, la macro se ejecutará instantáneamente. Si fuese una letra que ya usa MS Excel, tendrás que presionar Ctrl + [Shift o tecla para Mayúsculas] + [Letra asignada]

.

Respuesta
1

Puedes crear un macro con el siguiente código:

'----------------------------------------------------------------

Sub copiarHojas()
      Dim i, veces
      veces = 0
      veces = InputBox("Digite el numero de veces a copiar la Hoja", "Numero de Copias")
      For i = 0 To (veces - 1)
            Worksheets(ActiveSheet.Name).Copy After:=Worksheets(ActiveSheet.Name)
      Next i
End Sub

'--------------------------------------------------------------

Para no hacerlo largo estoy asumiendo que sabes crear el macro por VBA, si no me avisas y lo explico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas