Macros VBA: Crear, guardar y copiar datos a un nuevo libro de trabajo

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ต.ค. 2020
  • Descarga el archivo de trabajo aquí: excel-mee.netlify.app/?id=seven
    Aprende a utilizar VBA con ejemplos prácticos, en este video conocerás como crear y guardar un nuevo libro de trabajo. Además, cómo copiar datos a este nuevo libro.
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @yanethdelpilarmartinezmuno5192
    @yanethdelpilarmartinezmuno5192 4 ชั่วโมงที่ผ่านมา

    Gracias maestro😊

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

    Felicitaciones, primera vez que veo un video en donde el expositor explica tan claramente cada paso y además te deja el archivo ejemplo....de ahora en adelante sere tu seguidor....que bueno....eso no es común y es muy didáctico

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

    muy agradecida con tu explicación. El mejor que he visto. Muy claro con la información, continua así.

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

    Muchas felicidades Mario, explicaste con una forma muy simple algo que parecia muy complicado, realmente muy agradecido con tu canal.

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

    Muy limpia la explicación. Muchas gracias.

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

      Hola! Que gusto saber que la información te fue de utilidad. Saludos y éxitos en tus proyectos de excel.

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

    Mil gracias, eres el unico con el cual he conseguido algo tan sencillo como copiar solo una hoja de excel y en un rango concreto y pegarlo a un nuevo libro incluso con los comentarios ponerle el nombre automaticamente de una celda concreta. te felicito, muy bien explicado

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

      Sub GuardarXLSX()
      ThisWorkbook.Sheets(1).Range("A1:D32").Copy 'copiar la informacion del libro actual
      Workbooks.Add 'Generar el nuevo libro
      ActiveSheet.Paste Destination:=Range("A1") 'pegar la informacion en el nuevo libro
      ActiveSheet.PasteSpecial xlPasteColumnWidths
      Application.DisplayAlerts = False
      ActiveWorkbook.SaveAs Filename:="G:\Mi unidad\FACTURAS JLACACI" & "\" & ThisWorkbook.Sheets("Factura").Range("I3") & ".xlsx" 'Guardar el nuevo libro en una carpeta específica y coge de la celda "I3" el nombre con el cual va a guardar el xlsx
      Application.DisplayAlerts = True
      ActiveWorkbook.Close 'cierra el libro activo (esto es importante, porque sino el libro se queda abierto y no te lo deja sobrescribir, hay que cerrarlo)
      End Sub
      adjunto código por si le sirve a alguien, le añadí algunas cosas que funcionan perfectamente

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

      Excelente aporte!

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

      Si nos puede ayudar con la misma información pero esta vez con un formulario vba

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

    Eres un maestro. Es justo lo que necesitaba para mi trabajo

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

      Hola Francisco! Que gusto saber que la información te fue de utilidad.

  • @MarielDiazmaryram
    @MarielDiazmaryram 11 วันที่ผ่านมา

    Súper justo que andaba buscando muchas gracias mi duda es como hago para que ese nuevo libro lleve el nombre de una tabla del libro anterior nose si se podrá hacer

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

    Makina Fiera, muchas gracias!!!

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

    Muchas gracias

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

    eres un puto dios

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

    Excelente explicación, quiero saber como copiar todas mis hojas con datos y pasarlas a un nuevo libro

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

      Hola Luis, puedes intentar con este código:
      Sub Copiar()
      Dim nhojas As Integer, i As Integer

      nhojas = ThisWorkbook.Worksheets.Count

      Workbooks.Add (xlWBATWorksheet)
      ActiveWorkbook.Sheets(1).Name = "temp"

      For i = nhojas To 1 Step -1
      If WorksheetFunction.CountA(ThisWorkbook.Worksheets(i).UsedRange) 0 Then
      ThisWorkbook.Worksheets(i).Copy Before:=ActiveWorkbook.Sheets(1)
      End If
      Next i

      Application.DisplayAlerts = False
      ActiveWorkbook.Sheets("temp").Delete
      ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\NuevoLibro.xlsx"
      Application.DisplayAlerts = True
      End Sub
      Espero te sea de utilidad. Saludos y éxitos en tus proyectos de Excel!

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

    Excelente

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

    estaba observado la informacion que diste muy buena sobre todo porque manejo informacion de alto nivel y es complicado pasar de libro en libro y se puede equivocar... ahora bien debo pasar la informacion de otra hoja de mi libro al libro creado en otra hoja como lo haria

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

      Hola! Disculpa que recien te responda. Escribeme a marioeugenioe@gmail.com para ayudarte con lo que necesitas

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

    Hola. Buenísimo el tip! lo quise implementar en un libro en el que estoy trabajado pero me me aparece un error en la sentencia : ActiveSheet.Paste = Range("A1") aparece un error 1004 indica que no se puede asignar la propiedad Paste de la clase Woorksheet y no funciono lamentablemente.¿ Hay solución?

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

    Hola Mario! es posible armar una macro para subir varios archivos excel a Sharepoint? No encontré mucho en TH-cam sobre el tema. Muchas gracias

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

    Alucino contigo Mario, te explicas super bien , no te enredas y todo claro, pero solo te digo que digite la macro pero no se me copian los formatos como los colores y todo eso, aunque veo que tu dices que si en unos de los comentarios, tendrá que ver con el utilizar pastespecial? gracias. Eres un Crack!!!!

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

      Hola José, muchas gracias por tus comentarios!! He probado la macro en diferentes PC's y en todos los casos me copia los formatos de colores de celda, fuente e incluso formatos condicionales, si deseas envíame tu archivo a marioeugenioe@gmail.com para tener una idea más clara de cómo ayudarte.

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

      @@MarioEugenioExcel Muchas gracias, te he enviado el archivo y me tomé la libertad de hacerte otra consulta , Muchas gracias.

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

    Como hago lo mismo, pero copiando solamente los valores de las celdas, sin fórmulas, para que sea un libro solo con esa información, gracias por los tutoriales, muy buenos!

    • @MarioEugenioExcel
      @MarioEugenioExcel  3 ปีที่แล้ว +2

      Hola Juan Manuel, gracias por tu comentario e interés, para conseguir lo que requieres, sólo debes reemplazar la línea de código
      ActiveSheet.Paste Destination:=Range("A1") por ActiveSheet.Range("A1").PasteSpecial xlPasteValues

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

    hola Mario muy buen video, tengo una duda, ¿es posible que esto se guarde en una hoja diferente siempre? osea almacenando todo lo que se guarda en hojas de excel sin que se pierda nada

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

    Excelente información, consulta y si quiero copiar varias hojas de un libro (no todas) en un nuevoarchivo, solo como valores pero conservando los formatos colores tamaños etc.

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

      Hola Romario! Cuál sería tu criterio para seleccionar las hojas que copiarías al nuevo libro?

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

    MUCHAS GRACIAS MARIO, ME GUSTARIA SABER COMO COPIO TODO EL LIBRO .SALUDOS CORDIALES

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

      Hola Francisco, una forma sencilla sería utilizando este código:
      Dim libro As Object
      Set libro = CreateObject("Scripting.FileSystemObject")
      Application.DisplayAlerts = False
      Call libro.CopyFile(ThisWorkbook.Path & "\" & ThisWorkbook.Name, ThisWorkbook.Path & "\" & "Copia.xlsm", True)
      Application.DisplayAlerts = True
      Espero te sea de utilidad. Saludos y éxitos en tus proyectos de Excel.

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

    Buenos dias y si son varias hojas las que quiero copiar, como haria?

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

    Excelente, esta macro es muy sencilla pero para nada pierde complejidad. Me pregunto si en lugar de dar el rango, se podría usar creo currentregion?

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

      Hola José! Es totalmente posible, por ejemplo, puedes modificar esta línea de código
      ThisWorkbook.Sheets(1).Range("A1:D6").Copy
      por esta otra
      ThisWorkbook.Sheets(1).Range("A1").CurrentRegion.Copy
      y funcionará exactamente igual

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

    Hola, muy buen video, muchas gracias.
    Me surgen dos preguntas, como se podria guardar el archivo tomando el nombre de un valor de una o varias celdas en especifico y la que mas me importa es como puedo hacer un pegado especial que mantenga el formato y tamano y colores de las celdas? (me refiero al ctrl+w o KeepSourceColumnWidth.
    Muchas garcias de antemano.
    Saludos!

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

      Hola Josafat! Respecto a tus consultas, te comparto lo siguiente:
      1. Para guardar el nuevo archivo tomando el nombre desde una celda, lo que debes hacer es modificar este código:
      ActiveWorkbook.SaveAs Filename:="C:\Users\HP\Downloads\Excel TH-cam\Macros\NuevoLibro.xlsx"
      por este otro:
      ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ThisWorkbook.Sheets(1).Range("F1") & ".xlsx"
      Donse Sheets(1) hace referencia a la hoja 1 del libro, puedes modificar el índice por la hoja desde la cual quieras tomar el valor y Range("F1") hace referencia a la celda F1.
      2. El código actual ya copia las celdas con sus formato y colores; sin embargo, si también deseas copiar el ancho de las columnas, debes añadir esta línea de código:
      ActiveSheet.PasteSpecial xlPasteColumnWidths
      debajo de esta línea:
      ActiveSheet.Paste Destination:=Range("A1")
      Espero que esta información te sea de ayuda. Saludos y éxitos en tus proyectos de Excel!

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

      @@MarioEugenioExcel Mil gracias por responder Mario, lo intentare el dia de hoy para ver si me funciona.
      Saludos!

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

    Hola desde Chile te escribo. Muchas gracias por tu información. La verdad soy nuevo en esto de las macros.
    tengo una duda. Es posible al momento de guardar el libro yo pueda hacer un especie de comando donde yo pueda poner el nombre al libro, no se, por ejemplo usando el inputbox.

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

      Hola Luis! Para lograr lo que necesitas reemplaza la línea de código:
      ActiveWorkbook.SaveAs Filename:="C:\Users\HP\Downloads\Excel TH-cam\Macros\NuevoLibro.xlsx"
      por estas otras:
      Dim nombre As String
      nombre = InputBox("Nombre del archivo")
      ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & nombre & ".xlsx"
      Con este cambio, podras indicar el nombre del nuevo archivo, el cual se guardará en la misma carpeta en la que se ubica el archivo base. Espero te sea de utilidad y éxitos en tus proyectos de excel!

  • @videoclass-pacha
    @videoclass-pacha 11 หลายเดือนก่อน

    Buenos días Juan, tengo la siguiente inquietud, Como podría crear una Macro para crear un nuevo libro que incluya otra macro en una Ubicación diferente?

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

    Cada vez que quieres guardar se graba en una carpeta diferente ??

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

    En mi libro origina, tengo un texto concatenado con el directorio y nombre que quiero que tenga el nuevo libro y que se copien las hojas activas.
    Eso se puede?

  • @videoclass-pacha
    @videoclass-pacha 11 หลายเดือนก่อน

    Muy interesante, le tengo una consulta, ¿como podriamos copiar directamente la hoja, esto lo pregunto porque al pegar la información se modificaría los formatos de alto de fila y estos se modificarán al pegar al nuevo libro, si se copiara la hoja entera eso se habría solucionado verdad?

    • @MarioEugenioExcel
      @MarioEugenioExcel  9 หลายเดือนก่อน +1

      Hola! Es correcto lo que indicas, el siguiente código copia todas las hojas del libro activo a un nuevo libro:
      Sub NuevoLibro()
      Dim hoja As Worksheet, alib As Workbook, nlib As Workbook
      Set alib = ThisWorkbook
      Workbooks.Add (xlWBATWorksheet)
      Application.DisplayAlerts = False
      ActiveWorkbook.SaveAs Filename:=alib.Path & "\NuevoLibro.xlsx"
      Application.DisplayAlerts = True
      Set nlib = Workbooks("NuevoLibro.xlsx")
      For Each hoja In alib.Sheets
      hoja.Copy After:=nlib.Sheets(nlib.Sheets.Count)
      Next hoja
      Application.DisplayAlerts = False
      nlib.Sheets(1).Delete
      nlib.Save
      nlib.Close SaveChanges:=True
      Application.DisplayAlerts = True
      End Sub
      Espero te sea de utilidad. Saludos y éxitos en tus proyectos de excel!

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

    Mister y si quiero que se guarde el libro con otro formato, por ejemplo a csv delimitado de comas. ¿Como seria?
    De antemano gracias

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

      Hola Caz, es muy sencillo, solo hay que modificar esta línea:
      ActiveWorkbook.SaveAs Filename:="C:\Users\HP\Downloads\Excel TH-cam\Macros\NuevoLibro.xlsx"
      por esta:
      ActiveWorkbook.SaveAs Filename:="C:\Users\HP\Downloads\Excel TH-cam\Macros\NuevoLibro.csv", FileFormat:=xlCSVUTF8, CreateBackup:=False
      Y listo! Con eso queda resuelto. Espero te sea de utilidad

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

    Buenos días, tengo una pregunta, queria combiar este macro con otro que ya tengo, de borrar filas, pero en la parte en la que escribes desde donde inicias la copia, hasta donde, este ultimo se puede hacer que sea automatico, por ejemplo desde A3:U??? El número de U, no lo sabemos, ya que varia segun los registros que queden luego de borrar los que no fueron usados...

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

      Hola David, lo que te sugiero es hacer referencia a la última celda utilizada de la hoja del libro base (antes de crear el nuevo libro en el código) de la siguiente manera:
      Dim ufila as Long
      ufila = Cells(Rows.count, 1).End(xlUp).Row
      y posteriormente usar ese dato como input para el rango a copiar de la siguiente manera:
      range("A3:U" & ufila).copy
      Espero esta información te sea de utilidad. Saludos y éxitos en tus proyectos de Excel!

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

    hola Mario, tengo un caso como el tuyo pero son dos hojas las que quiero copiar y aparte en una de ellas tengo formulas ¿como seria para copiar?

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

      Hola Moises, lo que necesitas es bastante diferente a la solución que he planteado en el video. Puedes intentar con el siguiente código:
      Sub NuevoLibro()
      Dim hoja As Worksheet, alib As Workbook, nlib As Workbook
      Set alib = ThisWorkbook
      Workbooks.Add (xlWBATWorksheet)
      Application.DisplayAlerts = False
      ActiveWorkbook.SaveAs Filename:=alib.Path & "\NuevoLibro.xlsx"
      Application.DisplayAlerts = True
      Set nlib = Workbooks("NuevoLibro.xlsx")
      For Each hoja In alib.Sheets
      hoja.Copy After:=nlib.Sheets(nlib.Sheets.Count)
      Next hoja
      Application.DisplayAlerts = False
      nlib.Sheets(1).Delete
      nlib.Save
      nlib.Close SaveChanges:=True
      Application.DisplayAlerts = True
      End Sub
      Espero que te sea de utilidad. Saludos y éxitos en tus proyectos de excel.

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

    Hola, clarisima la explicación. En un nivel mayor de dificultad, se puede agregar una linea que ayude a copiar rangos de datos? ejemplo misma tabla pero de 1000 filas y poder copiar de a mil a un libro existente y combier su nombre. Asi tendria 10 libros exactmente iguales con mil lineas cada uno y con su nombre, por ejemplo del 1 al 10. Gracias, saludos y un like!

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

      Hola Pablo, no es muy complicado sólo hace falta incluir un bucle For y hacerle unas pequeñas modificaciones al código. Aquí te dejo un ejemplo: fumacrom.com/3Mx7P
      Espero te sea de ayuda. Saludos y éxitos en tus proyectos de excel!

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

      @@MarioEugenioExcel excelente!!!!!!!!!! muchisimas gracias!!!!!!!!!!!!

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

    Hola, buenas tardes, disculpa tengo una duda cómo podría hacer para que los gráficos del archivo original se copien solo como imagen en el nuevo archivo. Me ha funcionado bien el script para los datos pero aún no sé como hacer con los gráficos de barras y líneas. Asimismo, cómo puedo hacer para que el nuevo archivo tenga el fondo sin líneas de cuadrícula al crearlo.
    Gracias,
    Saludos.

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

      Hola Milagros! Para lograr lo que necesitas, debes incluir las siguientes líneas de código:
      Dim chtO As ChartObject
      With ThisWorkbook.Sheets(1)
      For Each chtO In .ChartObjects
      chtO.CopyPicture
      ActiveSheet.Paste
      With ActiveSheet.Shapes(.Shapes.Count)
      .Top = chtO.Top
      .Left = chtO.Left
      .Name = chtO.Name & "_pic"
      End With
      Next chtO
      End With
      ActiveWindow.DisplayGridlines = False
      debajo de esta línea:
      ActiveSheet.Paste Destination:=Range("A1")
      Todo lo demás debe mantenerse exactamente igual. Espero te sea de utilidad. Saludos y éxitos en tus proyectos de Excel!

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

    Da asesorías profe, y como lo podría contactar. Gracais

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

      Hola Felipe! Puedes contactarme a través de mi correo: marioeugenioe@gmail.com

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

    Hola Mario, es posible una macro que permita crear carpetas según el nombre de una celda y se creen nuevos libros según con base en ciertos criterios y estos libros se guarden en esa carpeta que creo con el nombre de una celda especifica

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

      Hola Sergio, es un poco complicado explicarlo por aquí, escríbeme a marioeugenioe@gmail.com para compartirte un ejemplo de lo que necesitas.

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

      ​@@MarioEugenioExcelcreo que tengo la misma pregunta, en mi libro origen tengo un texto concatenado con el directorio y nombre que quiero que tenga el nuevo libro y se copien las hojas activas. Gracias.

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

    Excelente tutorial te felicito. Y si necesitamos crearlo y guardar en carpetas diferentes cada vez y con diferentes nombres 🤔🤔osea no es una carpeta fija y tampoco es el mismo nombre 🤔🤔🤔puedes ayudarme por favor

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

      Hola Aimeth, para darte una solución necesito como mínimo saber donde estaría almacenada la ruta de las carpetas y el nombre del archivo donde se guardaría cada archivo de forma individual.

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

    De pro to nos puede ayudar con un formulario de excel el cual se guarde la información en 2⃣ libros de excel

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

    Hola Mario como estas? te comento que con un boton llego solo a copiar y pegar los valores en un archivo nuevo, solome faltaria poder guardarlo. Tengo una tabla con envios dividida por varios transportitas, dicha tabla tiene un segmentador de datos. Por lo que solo necesito la informacion que muestra el filtro y no toda la tabla en su totalidad, por eso modifique
    el ThisWorkbook.Sheets("TABLA").Range("A10:J100000").Copy y lo cambie por las 3 primeras lineas,
    el ActiveSheet.Paste Destination:=Range("A1") lo cambie por el ActiveSheet.Range("A1").PasteSpecial xlPasteValues ya que no me copiaba nada.
    y las ultimas 3 lineas me tiran el error 424, cree la carpeta para guardarla en disco C y nada.
    Private Sub CommandButton2_Click()
    Worksheets("TABLA").Select
    Range("A10:J100000").Select
    Selection.Copy
    Workbooks.Add
    'ActiveSheet.Paste Destination:=Range("A1")
    ActiveSheet.Range("A1").PasteSpecial xlPasteValues
    'Application.DisplayAlerts = False
    'ActiveWorbook.SaveAs Filename:="C:\EPSA\PENDIENTES.xlsx"
    'Application.DisplayAlerts = True
    End Sub
    quisiera guardar el archivo tomando en cuenta lo que indica la celda B2 de este nuevo libro. En caso que no se pueda, que se guarde con el valor de alguna celda seteada del arhcivo de origen.

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

      creo que lo encontre,
      Dim NombreArchivo As String
      Dim RutaArhivo As String
      NombreArchivo = ActiveSheet.Range("B2").Text
      RutaArchivo = "C:\EPSA\" & NombreArchivo & ".xlsx"
      ActiveSheet.SaveAs Filename:=RutaArchivo
      por lo tanto el codigo me quedaria asi:
      Private Sub CommandButton2_Click()
      Worksheets("TABLA").Select
      Range("A10:J100000").Select
      Selection.Copy
      Workbooks.Add
      ActiveSheet.Range("A1").PasteSpecial xlPasteValues
      Dim NombreArchivo As String
      Dim RutaArhivo As String
      NombreArchivo = ActiveSheet.Range("B2").Text
      RutaArchivo = "C:\EPSA\" & NombreArchivo & ".xlsx"
      ActiveSheet.SaveAs Filename:=RutaArchivo

      End Sub

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

      Hola Lionel! Si es posible, envíame un ejemplo de tu archivo de trabajo a marioeugenioe@gmail.com para darte una solución que se ajuste a tus necesidades.

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

    Hola Mario, como puedo hacer para guardar el archivo en la misma ruta actual de donde se encuentra el archivo original?

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

      Hola Gabriel! Es súper sencillo, solo debes reemplazar la línea de código
      ActiveWorkbook.SaveAs Filename:="C:\Users\HP\Downloads\Excel TH-cam\Macros\NuevoLibro.xlsx"
      por esta:
      ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\NuevoLibro.xlsx"

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

      @@MarioEugenioExcel Muchas gracias

  • @JesusRomero-so7ib
    @JesusRomero-so7ib ปีที่แล้ว

    Disculpe, ¿como le hago para que me cree un nuevo libro sin que me reemplaze datos de uno ya existente?

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

      Hola Jesús! Necesitas crear un nuevo libro o copiar la información a un libro ya existente?

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

    En vez de sobrescribir el libro seria bueno cambiarle el nombre, dando opción que el usuario elija el nombre

    • @MarioEugenioExcel
      @MarioEugenioExcel  3 ปีที่แล้ว +2

      Hola Fabiola! Gracias por tu sugerencia, para lograr lo que necesitas reemplaza la línea de código
      ActiveWorkbook.SaveAs Filename:="C:\Users\HP\Downloads\Excel TH-cam\Macros\NuevoLibro.xlsx"
      por estas otras:
      Dim nombre As String
      nombre = InputBox("Nombre del archivo")
      ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & nombre & ".xlsx"
      Con este cambio, podras indicar el nombre del nuevo archivo, el cual se guardará en la misma carpeta en la que se ubica el archivo base. Espero te sea de utilidad y éxitos en tus proyectos de excel.