jueves, 12 de diciembre de 2013

Como copiar una hoja de Excel automáticamente varias veces


Hace ya varias semanas me hicieron una consulta, en la cual me preguntaban, como podían hacer una copia de hoja varias veces de manera automática.
Para ello vamos a usar una Macros en Excel, y seguiremos los siguientes pasos:
Paso 1: Estando en Excel presionamos la tecla ALT+F11, para activar el Visual Basic.


Paso 2: Presionamos el menú Insertar, y seleccionamos la opción Modulo.


Paso 3: Copiamos el siguiente código:
Sub CopiaHoja()
    On Error Resume Next
    nombreHoja = InputBox("Indique el nombre de la Hoja que desea copiar")
    For x = 1 To Sheets.Count
        If ActiveWorkbook.Sheets(x).Name = nombreHoja Then
            ExisteHoja = True
            IndiceHoja = x
        End If
    Next x
    
    If ExisteHoja = True Then
        NumeroDeCopias = InputBox("Indique cuantas veces lo desea copiar")
        For y = 1 To NumeroDeCopias
            Nombre = Val(nombreHoja) + y
            Sheets(IndiceHoja).Select
            Sheets(IndiceHoja).Copy After:=Sheets(Sheets.Count)
            Sheets(Sheets.Count).Name = Nombre
        Next y
    Else
        MsgBox "La hoja no existe"
    End If
End Sub

Paso 4: Cerramos el Visual Basic y regresamos al Excel.

Estando ya en el Excel, seleccionamos la etiqueta Vista, luego hacemos clic en el botón Macros, ver Macros.


En la ventana de Macro, seleccionamos CopiaHoja, y presionamos el botón Ejecutar.


Luego de presionar el botón ejecutar, aparece una ventana donde nos solicita escribir el nombre de la hoja que queremos copiar. En este caso colocaremos "100"


Después de indicar el nombre de la hoja, nos pregunta cuantas veces lo deseo copiar, en este caso colocaremos 10.


Luego nos aparecerá 10 hojas adicionales que son copia de la hoja 100, y los nombres de las hojas han cambiado correlativamente.


Espero que les sirva

Saludos

Ing. Enrique Neciosup Morales