VBA: Copia varias hojas de un libro de Excel automáticamente

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ธ.ค. 2024

ความคิดเห็น • 67

  • @carmencampomanes2960
    @carmencampomanes2960 หลายเดือนก่อน

    Muy bien explicado. Me ha ayudado mucho, gracias!!

  • @rafaelbonilla3344
    @rafaelbonilla3344 10 หลายเดือนก่อน +1

    Muy bien explicado, la aportacion del formulario es muy buena opcion, aparte de sencilla.
    Te da mas rapidez y seguridad en la ejecucion del copiado.
    Le puedo pedir que controle la musica o sonido de fondo, en algunos momentos le tapa su voz.
    Por lo demas perfecto y muy didactico.
    Gracias.

    • @InteligenciaEficiente
      @InteligenciaEficiente  10 หลายเดือนก่อน

      Hola Rafael, muchísimas gracias por su valioso comentario y observación, claro que las estaremos tomando en cuenta para los videos futuros. ¡Saludos! :D

  • @vaneharos
    @vaneharos 3 ปีที่แล้ว

    Hola te quiero felicitar, está súper bien explicado y lo pude realizar con absolutamente 0 conocimiento previo... Espero más tutoriales así para seguir aprendiendo 👌🏼👍🏼

    • @InteligenciaEficiente
      @InteligenciaEficiente  3 ปีที่แล้ว

      ¡Muchas gracias! Claro que sí, hay muchos más tutoriales de los que podrás aprender bastante :D

  • @ALPHERATZ3650
    @ALPHERATZ3650 3 ปีที่แล้ว

    Excelente video, entiendo que ya es para gente que domine macros pero no estaría mal explicar o decir que utilizas funciones, yo recién me doy cuenta por que veo que pasabas argumentos a los procedimientos, pero excelente este tutorial, sigue así., me ha ayudado muchísimo , gracias nuevamente.

    • @InteligenciaEficiente
      @InteligenciaEficiente  3 ปีที่แล้ว

      ¡Muchas gracias por tu comentario José, tomaré en cuenta lo que mencionas! ¡Gracias por apoyar el canal! :D

  • @vanessaelizabethzuritapiza3224
    @vanessaelizabethzuritapiza3224 2 ปีที่แล้ว

    Hola que tal, no se nada y esta macro me funciona excelente.

  • @TheChikisYT
    @TheChikisYT 2 ปีที่แล้ว

    Me sirvio de maravilla, muchas gracias por enseñar lo que sabes.

  • @aadrianaam14
    @aadrianaam14 3 ปีที่แล้ว

    Excelente, muy bien explicado, muchas gracias

  • @juancenteno8757
    @juancenteno8757 3 ปีที่แล้ว

    Genial video todo muy completo. Muchas gracias

  • @CarlosAlvarado-yi8ot
    @CarlosAlvarado-yi8ot 2 ปีที่แล้ว

    muy muy Clarito la explicación

  • @josepenarroya
    @josepenarroya 3 ปีที่แล้ว

    Como siempre Excelente,por favor sigue asi.Gracias

  • @miguelca7677
    @miguelca7677 4 หลายเดือนก่อน

    Excelente video bien explicado

  • @sackacosta1050
    @sackacosta1050 ปีที่แล้ว

    Muchas gracias, me sirvio mucho

  • @CarlosAlvarado-yi8ot
    @CarlosAlvarado-yi8ot 2 ปีที่แล้ว

    excelente tutorial

  • @marylandcarvajal9909
    @marylandcarvajal9909 9 หลายเดือนก่อน

    Genial 😊

  • @danielaparra9152
    @danielaparra9152 ปีที่แล้ว

    Superrrrrr!!

  • @romarioreinoso3443
    @romarioreinoso3443 3 ปีที่แล้ว +1

    Nueva Suscripción, consulta y si quiero que se guarde en otro archivo nuevo que solo estén las hojas copiadas sin la hoja donde está el botón, solo como valores y conservando el formato colores tamaños etc

    • @InteligenciaEficiente
      @InteligenciaEficiente  3 ปีที่แล้ว

      ¡Hola! Para poder guardarlo como un archivo nuevo y que solo pegue los valores incluyendo formatos es necesario modificar el código del método copiarHojas 14:53 :
      Sub copiarHojas(libro As Workbook)
      Dim nombreHoja As String
      Dim nuevoLibro As Workbook
      Application.DisplayAlerts = False
      Set nuevoLibro = Workbooks.Add
      For i = 0 To Menu.ListBox1.ListCount - 1
      If Menu.ListBox1.Selected(i) Then
      nombreHoja = Menu.ListBox1.List(i)
      libroSeleccionado.Sheets(nombreHoja).Copy After:=nuevoLibro.Sheets(1)
      nuevoLibro.Sheets(nombreHoja).Cells.Copy
      nuevoLibro.Sheets(nombreHoja).Range("A1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme
      nuevoLibro.Sheets(nombreHoja).Range("A1").PasteSpecial Paste:=xlValues
      Application.CutCopyMode = False
      End If
      Next
      nuevoLibro.Sheets(1).Delete
      libroSeleccionado.Close SaveChanges:=False
      nuevoLibro.SaveAs Filename:=ThisWorkbook.Path & "\" & "Libro de copia.xlsx", FileFormat:=51
      nuevoLibro.Close
      MsgBox "Hojas copiadas correctamente", vbInformation
      Unload Menu
      End Sub

  • @OscarNaced
    @OscarNaced ปีที่แล้ว

    Muchas gracias, muy bien explicado, queria saber si es posible en lugar de que se agregue la hoja, estas puedan ser copiadas en hojas ya existentes?

  • @samuelchaparro4928
    @samuelchaparro4928 2 ปีที่แล้ว +1

    Excelente macro. Agradezco poder obtener el código de la macro.

  • @luisantonionuneznavarro4031
    @luisantonionuneznavarro4031 3 ปีที่แล้ว

    suscrito

  • @javieribazeta6233
    @javieribazeta6233 ปีที่แล้ว

    hola una consulta: un archivo excel tiene filtros por meses - ( se puede seleccionar julio, junio, agosto etc. ) es factible hacer una macro que actue sobre ese filtro, por ejemplo dado un mes que tome ese mes indicado, el mes anterior y el mismo mes pero del año anterior

  • @armandsan5969
    @armandsan5969 ปีที่แล้ว

    Te felicito por tu video, muy bien explicado y se que hay muchos videos de este tipo, pero no has considerado realizar un Tutorial para Principiantes (veo que utilizas pasos de macros, botones y vba, muy completo) en Excel y VBA? creo que serias buen Maestro y si lo haces me apunto, vale Saludos Bro

    • @InteligenciaEficiente
      @InteligenciaEficiente  ปีที่แล้ว

      Muchas gracias por tu comentario! Claro que sí, estaré trabajando en ello :D

    • @armandsan5969
      @armandsan5969 ปีที่แล้ว

      @@InteligenciaEficiente Vale pues estare al pendiente, Saludos

  • @MiguelGarcia-ps2mh
    @MiguelGarcia-ps2mh 2 ปีที่แล้ว

    Excelente video ✔
    Tiene alguna macro que oculte las formulas y bloquee las celdas que las contenga❓
    Gracias

    • @InteligenciaEficiente
      @InteligenciaEficiente  2 ปีที่แล้ว

      De momento no, pero es una gran idea, haré un video muy pronto!

  • @marlynquintero9261
    @marlynquintero9261 3 ปีที่แล้ว

    Excelente muy buena explicación, y si quisiera que no se copiaran por aparte sino consolidar todos los archivos en uno solo, cambiaria mucho el código?

    • @InteligenciaEficiente
      @InteligenciaEficiente  3 ปีที่แล้ว

      Muchas gracias Marlyn, te comparto este otro vídeo donde se hace el consolidado, si tienes más comentarios no dudes en escribirme. Saludos :D th-cam.com/video/UhzWa8SrwDk/w-d-xo.html

    • @marlynquintero9261
      @marlynquintero9261 3 ปีที่แล้ว

      @@InteligenciaEficiente Uy si ya lo vi esta super interesante, pero respecto a este si necesito que pegue solo los valores, cómo o dónde podría agregar la línea de código.

    • @InteligenciaEficiente
      @InteligenciaEficiente  3 ปีที่แล้ว

      @@marlynquintero9261 te comparto este vídeo de otro canal, en el minuto 03:46 hace el pegado de solo los valores, saludos!! th-cam.com/video/1G3kmBSh1kQ/w-d-xo.html

  • @albertocarvajal1539
    @albertocarvajal1539 2 ปีที่แล้ว

    Hola, excelente video, quiera saber como se puede crear un macro que copie la informacion de varios archivos de excel a uno solo en diferentes hojas y que permita escoger las hojas que uno requiera copiar

    • @InteligenciaEficiente
      @InteligenciaEficiente  2 ปีที่แล้ว

      Muchas gracias, pensaré en algo interesante para subir el video.

  • @samuelchaparro4928
    @samuelchaparro4928 2 ปีที่แล้ว

    Excelente sitio. Pudieran ayudarme con una macro que elimine los vinculos externos en un libro Excel. Lo necesito porque al copiar una hoja de un libro se viene con vinculos; pero no necesito los vinculos de esa hoja copiada.

    • @InteligenciaEficiente
      @InteligenciaEficiente  2 ปีที่แล้ว

      Hola Samuel, te recomendaría que al pegar los valores utilices el método PasteSpecial xlPasteValues para que solo pegue los valores, más información en este enlace: docs.microsoft.com/es-mx/office/vba/api/excel.range.pastespecial
      docs.microsoft.com/es-mx/office/vba/api/excel.xlpastetype

  • @jozuelc9775
    @jozuelc9775 3 ปีที่แล้ว

    Felicitaciones muy buen aporte como ejemplo, ¿Cómo se puede hacer una macro para un Libro Destino con varias hojas con rango de celdas especificas y que requiere contar con los mismos datos de otro libro de varias hojas con rangos de celdas específicas, es decir del "Libro1-Hoja1-Rango Especifico" copiar al "Libro2-Hoja1-Rango Especifico", del "Libro1-Hoja2-Rango Especifico" copiar al "Libro2-Hoja2-Rango Especifico", del "Libro1-Hoja3-Rango Especifico" copiar al "Libro2-Hoja3-Rango Especifico", etc?. De antemano muy agradecido por su repuesta. Saludos desde Puno-Perú. Gracias.

    • @InteligenciaEficiente
      @InteligenciaEficiente  3 ปีที่แล้ว +1

      Hola Josué, eso sería una combinación de esta macro junto con otra que explico en mi video más actual donde se ve cómo pasar los valores de diferentes celdas desde un libro de Excel a otro. Te recomiendo que les una revisada! :D th-cam.com/video/gm04zRD4ImE/w-d-xo.html

  • @luiscastruita8784
    @luiscastruita8784 3 ปีที่แล้ว

    Excelente presentación, tengo una situación en donde tengo 26 archivos uno por semana y se necesita crear uno nuevo con el resumen de todos ellos, todos tiene el mismo encabezado, el mismo formato y toda la información inicia en la fila b9, y cada semana se debe de agregar información, por lo que se necesita que acumula los datos, ¿me puedes ayudar a crear una macro que pueda realizar este resumen?

    • @InteligenciaEficiente
      @InteligenciaEficiente  3 ปีที่แล้ว +1

      Qué tal Luis. Según entiendo lo que haces es consolidar la información de diferentes libros. Si es así esta macro puede ayudarte: th-cam.com/video/UhzWa8SrwDk/w-d-xo.html

    • @luiscastruita8784
      @luiscastruita8784 3 ปีที่แล้ว

      Facinado por tus presentaciones, lo ejecuto y te comento, saludos!!

    • @luiscastruita8784
      @luiscastruita8784 3 ปีที่แล้ว

      Gracias por tus aportes que me han ayudado demasiado, aprovecho también para ampliar la solicitud de apoyo con los archivos que necesito tener en resumen, casa semana se elabora un archivo de arqueo y este tiene varias hojas entre ellas, el arqueo (donde está el resumen de todo el archivo), los gastos por separado, clarificador en 5 tipos, necesito generar un resumen en global que sea acomulable.
      Me puedes proporcionar el correo para detallarte lo que necesito. Saludos

    • @InteligenciaEficiente
      @InteligenciaEficiente  3 ปีที่แล้ว +1

      @@luiscastruita8784 Con gusto, te comparto el link de mi página en Facebook para que sigamos el contacto: facebook.com/InteligenciaEficiente/

  • @alva89367
    @alva89367 2 ปีที่แล้ว

    Hola el vídeo es bueno, pero tengo una consulta. Si mi excel esta en idioma de inglés, lo que se describe en español debería escribirlo en inglés? por ejemplo la palabra libro

    • @InteligenciaEficiente
      @InteligenciaEficiente  2 ปีที่แล้ว

      ¡Hola Raysa! No es necesario que lo escriba en inglés, todo lo que tiene que ver con nombres de variables puede ser escrito en el idioma que mejor le parezca, ¡saludos!

  • @Mar10Bravo
    @Mar10Bravo ปีที่แล้ว

    Una duda. Para hacerlo desde un libro de macros personales me da error por el this workbook ni el chat gpt me ha podido ayudar. Ja ja.

    • @InteligenciaEficiente
      @InteligenciaEficiente  ปีที่แล้ว

      Hola Mario! Prueba con ActiveWorkbook en lugar de ThisWorkbook ;)

    • @Mar10Bravo
      @Mar10Bravo ปีที่แล้ว

      Probé con eso pero aquí el tema es que cuando corro la macro y selecciono el archivo con las hojas a copiar el libro activo queda el recién abierto y no donde quiero pegar las hojas.
      No se si me explique.
      Es por decir abro un nuevo libro y desde ahí ejecuto la macro desde la ribbon al yo seleccionar el archivo es el que queda activo y por consiguiente es ahí donde hace la copia.

    • @InteligenciaEficiente
      @InteligenciaEficiente  ปีที่แล้ว

      @@Mar10Bravo tendrías que crear una variable y asignarle el valor del libro activo en ese momento antes de que abran los demás, por ejemplo:
      Dim libroDestino as Workbook
      Set libroDestino = ActiveWorkbook

  • @hugoadrianenciso683
    @hugoadrianenciso683 2 ปีที่แล้ว

    Lo hice siguiendo los pasos y tengo un error ya mire muchas veces y no entiendo por que se genera el error, error 91 variable de objeto o bloque with no establecido me sale, y si le pongo depurar dice que la linea que esta mal es for each hoja in libro.sheets

    • @InteligenciaEficiente
      @InteligenciaEficiente  2 ปีที่แล้ว

      Hola Hugo, tendría que revisar cuál es el problema, puede contactarme a mi correo inteligenciaeficienteYT@gmail.com ¡SALUDOS!

  • @richardwilmarsalascaballer8746
    @richardwilmarsalascaballer8746 2 ปีที่แล้ว

    BUENAS NOCHES ESTIMADO, QUISERA HACER UNA CONSULTA PARA PODER REALIZAR LO QUE SE PUEDE APRECIAR EN EL SIGUIENTE LINK DEL VIDEO, HABER SI PUEDE AYUDARME EN TODO LO QUE ESTA RELACIONADO CON EXCEL SEGUN EL VIDEO. SALUDOS. th-cam.com/video/OSkwQnXQGPo/w-d-xo.html , 10.- Planilla de Replanteo con AutoCAD Civil 3D 2018 y TD Excel DG-2014

    • @InteligenciaEficiente
      @InteligenciaEficiente  2 ปีที่แล้ว

      Hola Richard, si deseas una asesoría más personal puedes escribirme a: inteligenciaeficienteyt@gmail.com SALUDOS!!

    • @richardwilmarsalascaballer8746
      @richardwilmarsalascaballer8746 2 ปีที่แล้ว

      @@InteligenciaEficiente ps bien en un momento escribiré a su correo personal

  • @MartinPeVi
    @MartinPeVi 2 ปีที่แล้ว +1

    //Modulo
    Public libroSeleccionado As Workbook
    Sub Principal()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Dim rutaSeleccionada As Variant
    rutaSeleccionada = Application.GetOpenFilename(Title:="Por favor seleccione un libro")
    If rutaSeleccionada = "False" Then
    Exit Sub
    End If
    Set libroSeleccionado = Workbooks.Open(rutaSeleccionada)
    Call listarHojas(libroSeleccionado)
    Load Menu
    Menu.Show vbModeless
    End Sub
    Sub listarHojas(libro As Workbook)
    Dim hoja As Worksheet
    For Each hoja In libro.Sheets
    Menu.ListBox1.AddItem hoja.Name
    Next
    End Sub
    Sub copiarHojas(libro As Workbook)
    Dim nombreHoja As String
    For i = 0 To Menu.ListBox1.ListCount - 1
    If Menu.ListBox1.Selected(i) Then
    nombreHoja = Menu.ListBox1.List(i)
    libroSeleccionado.Sheets(nombreHoja).Copy After:=ThisWorkbook.Sheets(1)
    End If
    Next
    libroSeleccionado.Close
    MsgBox "Hojas copiadas correctamente", vbExclamation
    Unload Menu
    End Sub
    //Formulario
    Private Sub btnCopiar_Click()
    Call copiarHojas(libroSeleccionado)
    End Sub
    //Formulario
    Private Sub UserForm_Activate()
    Me.ListBox1.ListStyle = fmListStyleOption
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    End Sub
    By: mpv