Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Crear Libro y copiarle un contenido con Macros

| 16 comentarios

Muchas veces necesitamos copiar algunos datos en un libro externo. Para ello, se puede usar una macro y así hacerlo de manera inmediata.

Para nuestro caso ejemplo se tiene un Excel con la siguiente data:

ejemplo 1

Se deseara copiar los datos desde la celda B4 a la C10 (rango) en un libro nuevo en la celda A1 de su primera hoja. Luego, se desactivaran las notificaciones y se guardara el archivo en el sistema, especificando la ruta. Finalmente, se activaran de nuevo las alertas, ya que son necesarias para ver si Excel esta funcionando correctamente.

La macro para este ejemplo seria:

ejemplo 2

(Para mayor visualización de la imagen, hacer click en la misma)

Este código da como resultado un libro como el siguiente:

ejemplo 3

 

Forma de uso:

La forma de uso de esta macro seria copiar los códigos en un modulo en VBA, cambiándole los datos de las celdas dependiendo de lo que se busque copiar y el nombre de la hoja donde se encuentran, asi como cambiar la ruta donde se guardara el archivo.

 

Por: Adriana del Pilar Silva

16 comentarios

  1. Hola les hago una consulta: Tengo una planilla excel con direcciones de mails de clientes en la columna A. En la columna B tengo el detalle de los clientes que se van dando de baja. Y quisiera crear una formula para que; los datos de la columna B se vayan restando automaticamente a la columna de A y que el resultado quede en la columna C. Se puede? Les agradezco su tiempo! Hugo

  2. Hola buenos días, necesito que me ayuden con un macro.
    La cosa es que necesito un macro que genere un archivo excel llamado reporte y en el copie 3 Hojas de calculo (Resumen; Inventario; Reparaciones). y guarde este archivo excel con el nombre de "reporte_YYMMDD.xlsx".
    Desde ya muchas gracias.

    Diego

    • Sub CrearLibroYCopiarHojas()

      Dim origen As Workbook
      Dim destino As Workbook

      'Congelamos mientras trabaja la macro
      Application.ScreenUpdating = False

      Set origen = ActiveWorkbook

      Workbooks.Add
      Set destino = ActiveWorkbook

      'Volvemos al libro de origen
      origen.Activate

      'Buscar las tres hojas y copiarlas en el libro nuevo
      Sheets(Array("Resumen", "Inventario", "Reparaciones")).Copy Before:=destino.Sheets(Sheets.Count)

      'Eliminar las hojas que se crean automáticas
      destino.Activate

      'Evitar mensajes de Alerta y proceder a borrar las hojas
      Application.DisplayAlerts = False

      Sheets(Array("Hoja1", "Hoja2", "Hoja3")).Select
      Sheets("Hoja3").Activate
      ActiveWindow.SelectedSheets.Delete

      Application.DisplayAlerts = True

      'Generar una variable con datos de fecha y hora para el nombre del archivo
      fechanombre = Format(Now, "dd.mm.yyyy_hh.mm")

      'Variable con el nombre que llevará el archivo
      nombrearchivo = "Reporte_" & fechanombre & ".xlsx"

      'Guardar el nuevo archivo con formato Excel 2007+ y con el nombre definido en la variable nombrearchivo
      ActiveWorkbook.SaveAs Filename:=nombrearchivo, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

      'Volvemos al libro de origen
      origen.Activate

      'Descongelamos
      Application.ScreenUpdating = True
      End Sub

      • yo también genero un reporte diario con este mismo formato... en mi caso luego de copiar las hojas, las pego como valores.... así cuando el usuario abre el reporte no pide actualizar los vinculos

      • Hola. Quisiera saber cómo hacer lo siguiente, creo que es posible resolverlo con una programación parecida a la que posteaste pero no conozco tanto de VBA como para modificarla.
        Tengo un libro abierto (origen) y quiero que los datos en ella se copien a la primer hoja de un libro plantilla (con hojas diferentes a las del libro origen) y se guarde con un nombre de archivo igual al dato en la celda C3 del libro origen).
        Espero se entienda y puedas ayudarme, muchas gracias!

  3. Buenas tardes me podrian ayudar por favor

    tengo una lista de personas pero quiero realizar archivos de excell independientes de cada uno de los de la lista con informacion individual habra alguna macro que me ayude hacerlo??

  4. Buenos días,

    Necesito ayuda para crear un macro que cree un nuevo libro de excel en el cual contenga una formato de presupuesto que usamos en la empresa. El problema es que el formato tiene celdas fusionadas y cuando pega el rango seleccionado se descompagina todo.

    Si pudiesen contactarse conmigo les paso el archivo que estoy armando asi lo vean.

    Desde ya muchas gracias!

  5. Buenos días, tengo varios libros de excel con una sola hoja cada uno, solo quiero reagruparlas en un solo libro
    gracias

  6. De un Libro matriz necesito copiar un rango, y enviarlo a otro libro. este rango varía en cada archivo matriz. por ejemplo si ahora el rango es A1:A20 en otro archivo podría ser A1:A100, en Otra Hoja tengo los rangos a copiar. estos cambian con cada archivo matriz. atento a su Ayuda.

  7. Buenas tardes

    tengo una hoja de exel origen con columnas definidas que deseo copiar en otra con esas mismas columnas pero en otro orden.

    Pueden ayudarme a crear esta macro.

  8. Buenas tardes, ojala que alguien me puedas ayudar; como puedo hacer para que solo se peguen valores y no formulas de esta macro. Saludos!!!

    Private Sub CommandButton11_Click()
    Sheets("R").Range("C2:T652").Copy
    Workbooks.Add
    ActiveSheet.Paste Destination:=Range("A2")
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs
    Filename = "C:\Users\Agustin\Desktop\Trafic+\Reporte.xlsx"
    Application.DisplayAlerts = True
    End Sub

  9. Hola.
    como se hace para pegar en destino el valor sin la formula?

    • Equivalente a pegado especial sólo valores con macro

  10. Equivalente a pegado especial sólo valores con macro

  11. Muchas gracias, me fue muy util.

  12. Buenas tardes

    Ocupo crear una macro para generar un archivo nuevo de Excel desde otro archivo con datos, seleccionar los datos disponibles en las pestañas y generar 1 archivo por cada pestaña

    Me podrían ayudar gracias

Deja una respuesta

Los campos requeridos estan marcados con *.