Macro para exportar hoja de excel a PDF
ฝัง
- เผยแพร่เมื่อ 22 ส.ค. 2024
- Macro para exportar datos de una hoja de excel a PDF
Programación en excel con vba que nos permite exportar información de una hoja de excel hacia un archivo PDF.
Generar informe en pdf desde excel usando macros
Si deseas colaborar te comparto mi link de paypal:
www.paypal.me/...
Les dejo el link del tutorial en mi blog donde también podrán encontrar el archivo excel vba: exceltutos.blog...
Si deseas aprender como generar tus reportes y luego pasarlos a PDF contactame a:
www.tusclases....
FanPage: goo.gl/Nd7aLH
ÚNETE al grupo de Whatsapp para compartir más ayuda en Excel VBA. bit.ly/42MyVV4
Excelente explicación, muy bien hecho, buen trabajo, sin tanto lío como otros y sin copiar código que no entienden, tu sabes cada línea que hace y eso se agradece al estar viendo tu video!!!
Este tutorial tiene ya 1 año y medio y me ha sido de mucha utilidad. Muchisimas gracias
Enrique LV Gracias.
Buenas tardes, gracias Dios del Excel
Muchas gracias por el aporte!!
Les dejo la macro que programé, evita que se ejecute el programa luego de guardar el archivo
Cambié un par de cosas como la fecha y la hora, tal vez a alguien le sirva
Se ejecuta cada equis tiempo
Dim tiempo
Sub ExportarPDF()
' ExportarPDF Macro
'Evitar movimientos de pantalla'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Variables'
Ruta_PDF = "F:\Documents\"
Nombre_PDF1 = "NestorAlda " & Year(Now) & Month(Now) & Day(Now) & " " & Hour(Now) & "_" & Minute(Now) & "_" & Second(Now) & " Panel1"
Nombre_PDF2 = "NestorAlda " & Year(Now) & Month(Now) & Day(Now) & " " & Hour(Now) & "_" & Minute(Now) & "_" & Second(Now) & " Panel2"
'Ejecución pdf1'
Worksheets("PANEL").Range("A1:S44").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Ruta_PDF & Nombre_PDF1, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
'Ejecución pdf1'
Worksheets("PANEL").Range("t2:ac43").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Ruta_PDF & Nombre_PDF2, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
'Finalizar evitar movimientos de pantalla'
Application.DisplayAlerts = True
Application.ScreenUpdating = True
'ejecutarlacadaXtiempo-----------------------'
tiempo = DateAdd("s", 10, Time)
Application.OnTime tiempo, "ExportarPDF"
End Sub
Saludos!!
Excelente !! Muchas gracias !!!!
Bua muchas gracias❤
Excelente!! Me sirvió bastante, muchas gracias por compartir su conocimiento
Gracias por sus aportes, en vez de esto podria hacer desde un mensaje para colocarle nombre al archivo MilGracias
Excelente, me gustaría saber si es posible asignar un consecutivo de facturación que se encuentra inmerso dentro de la hoja de calculo al nombre del PDF en vez del numero que genera. Gracias.
Amigos, he puesto en la descripción del video el link para que puedan ver este contenido con archivo de ejemplo en mi blog.
Me pueden enviar sus sugerencias para poder crear algunas macros.
@Ing. Alvin G. manda el codigo del nombre que le das a tu archivo PDF, ahi debe estar el problema.
amigo buen vídeo pero como le puedo dar nombre al pdf desde una celda y que esta se modifique según se actualice el archivo.
Le asignas a una variable el valor de las celdas ocupadas Ejem. Mi variable se llama rg y le doy el valor rg=ActiveCell.SpecialCells(xlLastCell).Row y luego recién pongo Worksheets("Nombre de la Hoja").range("A1:H" & rg) y asi tu rango es dinamico y se actualiza de acuerdo a la cantidad de registros que tengas
ME HA SERVIDO MUCHISISISISISIMO!! MUCHAS GRACIAS Y SALUDOS DESDE MTY MEX
Sencillamente entendible. Muchas Gracias 👏👏👏👏👏👏👏
Gracias a ti por ver mi video. Saludos
Excelente video!!, me sirvio muchisimo, muy bien explicado y sin perder tiempo en cosas irrelevantes, Gracias nuevamente!!!
Oye pregunta no tuviste error en la parte de ocultar el botón?
@@santiagomartinez4743 si insertas una forma como botón para generar el pdf no lo podrás ocultar, lo que hice fue insertar un botón del menú desarrollador - insertar, y elegí un command button y le asigne la macro, este botón no aparece cuando generas el pdf.
Muy bueno el video, claro, concreto y corto
Enhorabuena !!
Muy bueno ya terminé de mi archivo
Excelente! Que bueno que te haya servido.
Buenazo el video, me ayudó mucho para implementarlo en un archivo de registros de mi trabajo!! Gracias
Excelente video, muchas gracias!
Muchas gracias, era justo lo que buscaba
Muchas gracias por el aporte. Me ha sido de gran utilidad en mi trabajo. Un 10.
Dios bendiga su trabajo y su aporte, es realmente valioso!!
Me salvaste la vida!!! muchas gracias por explicarlo tan bien!!!
Nicolás Alvaro Rubio Perez de Arce Un saludo. Gracias
Muy buen tutorial amigo, gracias... Oye como puedo exportar varias hojas desde ese mismo boton?
Gracias por compartir tus conocimientos hermano
Saludos amigos, tengo una duda, si no le agrego la parte del now * 1 el archivo me lo guarda una vez, pero si quiero volver a guardar me da error de automatizacion, alguna solucion para que me pregunte si quiero sobreescribir ? o que se guarde con el (1) que se le agrega en algunos archivos por ejmplo factura 1.pdf si existe que la guarde como factura(1).pdf factura(2).pdf etc.
gracias muy sencillo de entender, le hice algunos cambios, good
Muy buen video, muchas gracias!!!
Excelente tutorial, agradecido por tu aporte
Un saludo, me pregunto si esta función la puedo aplicar en PowerPoint?, me podrías asesorar.
Tengo la misma duda, alguien quien nos ayude porfavor
Excelente!
Excelente. Gracias
nos ha gustado mucho!! sigue compartiendo !!
Gracias por tu comentario, seguiré creando mas videos. Saludos
tengo una pregunta: si quiero que ese archivo macro exporte un pdf pero no es desde mi computador si no de cualquiera que debería colocar en la ruta?
si, por ejemplo si tienes una unidad de red en un servidor solo debes colocar la IP y la ruta hacia donde lo quieres guardar ejemplo
"\\192.168.1.1
ombre de la carpeta padre\sub carpeta\sub carpeta\"
en dado caso que la unidad de red la tengas oculta debes colocar el $ en la carpeta oculta.
saludos.
Hola que tal excelente video,y si el rango lo quieres exportar a un archivo de excel? Cuál sería la instrucción? Saludos
MUCHAS GRACIAS!!!! GRAN APORTE, ME FUNCIONO Y SIRVIÓ MUCHÍSIMO :D
Muy buen tips.. gracias... bendiciones
Tengo una duda y espero puedas responderla.
Todos los días, tengo que estar llenando datos de diferentes contratos. (los cuales son archivos PDF) el formato del contrato ese el mismo en sí para todos con el mínimo cambio del nombre del cliente, fecha, número de cuenta, etc. Esto es un poco tedioso, ya que son 9 hojas aproximadamente y los datos pueden aparecer hasta el inicio de la hoja, en medio, o abajo.
¿Existe alguna manera de realizar algún tipo de plantilla u hoja de datos en excel para yo solo llenar una pequeña hoja de datos y que estos se vacíen en las hojas del documento PDF?
Excelente hermano
Gracias, me sirvió su video.
excelente video, me gustaria poder tener el codigo, ya que por mi conexión se ve algo borroso y en vedad desearia poder aprender.Gracias
la macro con el lenguaje vba de excel que presentas es valida y efectiva en cualquier version de excel?
Si
Muchas gracias por el aporte. muy util para mis facturas.
una pregunta rapida: puedo ponerle de nombre al archivo un numero de dentro de la hoja de excel (para que el numero de la factura sea el numero de nombre, aunque varie cada vez)?
Me suscribo!
Hola Claro que si. Donde dice Nombre_PDF poner el siguiente codigo suponiendo que tu hoja se llama "Hoja1" y el numero esta en la celda "A1":
Nombre_PDF=Worksheets("Hoja1").Range("A1").value
@@maihuire11 Gracias!!!!!
excelente buen vídeo, me gustaría saber si en la misma macro se puede dar la instrucción de imprimir de una vez y cómo
Hola. Muy buen video. Muchas gracias por tu aporte. Quiero hacerte una consulta. Necesito hacer una macro que exporte en PDF y que el archivo PDF me lo guarde en la misma carpeta donde se encuentra el arhivo de excel.
Lo único que logré hasta el momento es que me lo guarde en una carpeta específica y esto no me sirve si abro el archivo desde otra PC, ya que me dice que no encuentra la ruta.
Esto es lo que tengo por ahora (gracias a vos):
Sub PDF()
'
' PDF Macro
'
'
Ruta_PDF = "C:\Users\jrgcd\Desktop\"
Nombre_PDF = "Jorge" & Range("F2").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Ruta_PDF & Nombre_PDF, Quality:=xlQualityStandard _
, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
Si abro el archivo desde otra máquina no se ejecuta bien la macro, ya que la ruta "C:\Users\jrgcd\Desktop\"
es especifica de mi PC.
Ojalá puedas ayudarme, desde ya, muchas Gracias!!
Muy bueno, gracias por enseñarnos
De nada, gracias a ti x visitar mi canal.
wow , mis primeros macros los aprendí aquí. Bro seguí este tutorial muchas gracias. Ojala me puedas ayudar con esta duda ¿Como podría hacer para que en vez de que me guarde el archivo con distinto numero , me lo guarde mejor con el nombre de la persona?, este nombre estaría en una de las celdas en la caratula del formato, digamos la celda A1 contiene el nombre de la persona.
Puedes poner en esta variable lo siguiente: Nombre_PDF = Range("A1").value
Se puede hacer lo mismo pero exportar a jpg lo que seleccione en el Excel?
Muito bom! Consegui resolver meu problema. Obrigado!
Buenas noches. Gracias por tu excelente aporte. Quisiera saber si es posible poner una ruta para guardar el PDF en el escritorio de cualquier PC. Ya que si abro el excel desde otra PC me dá error al no poder encontrar la ruta para guardar. Saludos!
George Of The City me ocurre lo mismo
@@bastianalejandrocrottsubia141 Alguno supo como resolver este problema?:(
Funciona excelente ! Gracias
Arturo Vazquez Gracias. no olvides suscribirte a mi canal. saludos
En mi caso tengo una hoja de trabajo con un formato pretermidado llamada "Blanco" en ella introduzco la información y quisiera que me me la guardase en el mismo archivo, creando una hoja nueva y con el nombre de una de las casillas que utilizo que en mi caso es la fecha.
Es posible??
Gracias
Muy bueno el aporte! Consulta, si agrego una columna con mails de personas, que código se le podría agregar a la macro, para que una vez generado el Pdf, lo envía a ese mail por outlook. Gracias!!
Tengo un video de como enviar correos usando Excel VBA en mi canal.
Saludos
Excelente material, gracias
Bueno el tutorial, consulta como sería el código para un informe que contiene una lista desplegable, la lista despliega los cursos de un colegio (1ºA, 1ºB, 1ºC... 4ºE.) además debe mostrar un mensaje de inicio y cierre del proceso, si me puedes ayudar, gracias. saludos.
Excelente Video
Disculpe funciona para excel de 64 bits? y cómo podría hacer para que lo guarde en drive o en documentos de google, hay forma de hacerlo?
Excelente aporte amigo, muchas gracias pero puedo hacer esa misma funcion en un boton de userform?
Saludos hermano
Al boton que necesites le pones lo siguiente call módulo*(pones el numero del modulo donde está la macro).(nombre de la macro) y listo
y si el nombre del archivo esta en una celda especifica que comando uso?
Como puedo abrir archivos PDF dentro de EXCEL, es para una base e datos de documentos digitalizados, de una o mas hojas por documento
Hola Buena tardes. Podria ayudarme con la siguiente duda. Me gustaria copiar algunos datos desde un archivo de Pdf a un formulacio utilizando vba. Podria ayudarme por favor en decirme como le puedo hacer??
excelenteme fue muy util pero me la variacion de numero es super extensa y me coloca una (,) osea como decimale, pero si quiero que sea solo la hora en vez de now ? que debo hacer gracias
disculpe por las molestias solicito macros trabajados para convertir datos de excel a pdf luego imprimir
¿como le haría para solo agrega a campos espesificos dentro del PDF editable?
muy bien como puedo hacer para guardarlo con el nombre del contenido de una celda por ejemplo que esa celda tenga la fecha y asi cada vez que lo quiera guardar cambie la fecha
Muy bien, ahora podrías hacerlo en Excel 365 en typescript?
Hola no manejo Typescript.
Hola Amigo, excelente tu tutorial...pero tengo una consulta referente a este trabajo...me puede enviar una direccion de correo para explicartelo pausadamente...gracias Saludos desde Lima
Auxilio por favor desde el Municipio de Mixco Departamento de Guatemala, Guatemala. Agradeceré toda la ayuda posiblevpara poder resolver:
Cómo imprimir documentos de una lista desplegable. En excel?
Son muchos documentos.
Por su ayuda gracias.
Atentamente
Alejandro Martinez
Hola se puede utilizar el mismo concepto, si deseas ayuda personalizada escribeme a mi fanpage que esta en la descripcion de mi video.
Hola como podría hacer para que la ruta no sea la misma y se pueda elegir una vez presionado el boton? Gracias!
Lograste hacerlo?
buenisimo
Como podría hacer para exportar el pdf de varias hojas de excel en un pdf global?
hola amigo muy bueno, como puedo hacer lo mismo pero en access para una factura
Muy buena la explicación, me gustaría saber cómo se hace para que el nombre quede de acuerdo al consecutivo de la factura.... Muchas gracias
Hola, depende en donde tienes almacenado el consecutivo de la facura. por ejemplo si lo tienes en la celda A1 seria algo así: Nombrearchivo=range("A1").value
@@maihuire11 muchas gracias por responder, si en efecto es para tomar el valor de una celda en la misma hoja de cálculo.
super
Hola: gracias por el aporte. En las respuestas a comentarios encontré la solución que llevaba buscando hace tres días y no me había fijado que hay estaba jejejeje.
Por favor me podrías decir: como hago una macro para que en unas celdas combinadas yo escribo un texto y pueda ajustar el texto salen varias lineas siendo visible todo lo que escribí (porque el autoajuste de texto no funciona en celda combinada) y después que la halla limpiado, pueda ajustar las filas normalmente.
Rodolfo Sierra Hola estimado. es posible hacerlo. vere si me ds un poco de tiempo para ayudartr. quizas suba un video sobre eso. mandame tu correo.
Hola rodolfosierrat@gmail.com ya tengo una macro pero hay que hacerles unos ajuste que no se como
Hola si deseo que se guarde con el nombre de una celda en vez de la variable "NOW" como haría? MIl gracias. El codigo esta excelente.
podrias cambiar la palabra now por esto: Range("A1").value que es para la celda A1 x ejemplo.
justo lo que buscaba
Buenas y muchas gracias por el aporte, como se podría hacer para quien tenga el excel sheets, lo pueda descargar en formato pdf, sea visto desde la web o un dispositivo movil. Gracias.
Estimado, solo he trabajado con Excel en escritorio.
Muchas gracias. Me fue muy util, sin embargo, estoy buscando la instrucción que cierre el archivo PDF, una vez se haya guardado. Espero me puedas ayudar. Saludos.
Masomenos en el minuto 2:00 vas a ver que el codigo dice OpenAfterPublish:=true cambia el true por false.
@@maihuire11 Muchas gracias. Me fue muy útil.
si cambio de maquina como hago que automáticamente cambie de ruta para guardar
muy bueno eh..grxs
Amigo excelente una consulta, se podría que al momento de dar Guardar como PDF nos pida la ruta y no hacerlo internamente en la macro Gracias
Gerson Waldir Ordoña Tafur claro que si. hare un video de como guardar mostrando el cuadro de dialogo guardar
Excelente amigo Gracias me ayudara Mucho
me gustaria saber como exportar a pdf un rango de celda selccionado por el mouse de la hoja seleccionada, alguien me podria ayudar
Tengo la misma duda. La pudiste resolver?
Excelenete, pero cada vez que guardo una nueva factura, me la remplaza, y solo me queda una, como haría ahí por fa?
Debes hacer que el nombre el archivo sea diferente en cada ejecución.
Excelente tutorial ! como se puede hacer para que me dé la opción de elegir en que carpeta lo guardo? y cambiarle el nombre también??
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path & "\"
.Title = "Seleccionar carpeta donde almacenar el archivo de " & tipo
.Show
If .SelectedItems.Count = 0 Then
MsgBox "No se ha seleccionado una carpeta"
End
Else
ruta = .SelectedItems(1)
End If
End With
Para seleccionar la ruta donde deseas almacenar, el nombre también lo puedes editar pero con otra macro
Excelente explicación amigo!! me sirvió, pero tengo una duda. Cómo puedo hacer para q en el nombre del archivo, la fecha no me salga con esa serie de números sino con números mas entendibles de interpretar. Por Ejempo: NombreArchivo_11.09.2020 . Gracias de antemano por tu apoyo
Hola si deseas poner un nombre parecido al que deseas, en la variable del nombre debes concatenar dia, mes y año, seria algo como esto: "NombreArchivo_" & VBA.Day(Date) & "_" & VBA.Month(Date) & "_" & VBA.Year(Date)
Uno donde pregunte el nombre del archivo y donde no este estado o el rango estático para usar el botón en distintas hojas
Hola, deberias usar para que pregunte la ruta del archivo el "OpenFileDialog" y sobre el rango de celda a elegir deberias tener un boton por cada hoja.
Excelente video, solo tengo una duda, ¿Cómo puedo asignarle un nombre especifico al PDF cuando se exporta. saludos :)
En la variable llamada nombre_PDF se coloca el nombre.
Yo creo que tiene la misma duda que yo, es decir que al darle boton de macro, uno pueda escribir el nombre de cada archivo
@@eduardolima65 Hola, si quieres darle el nombre al momento de exporta, deberias usar el codigo: FileDialog(msoFileDialogSaveAs), busca ejemplos sobre eso, aun no creo un video.
excelente, estoy con una macro que me genera una hoja externa (factura) y la imprime. Como hago el codigo ya que el archivo que genero no esta en la hoja activa.
La factura esta en otro libro al que tiene la macro?
Gracias por su respuesta, pero ya lo solucione. Siga a delante con los tutoriales son bastante buenos.
Perdona, pero a mi cuando cierro el excel habilitando macros, cuando lo vuelvo a abrir no me roconoce ninguna macro
Sebastià serra debes guardarlo como archivo .xlsm y cuando lo abres debes activar la macro.
como lo puedo hacer en office 2016 para mac
lo he intentado varias veces y no me sale. por favor dame una mano. me dice error printing.
@@carlosmartinez-jf2fk hola carlos, tengo mismo problema, lo pudiste resolver?
Gracías, seria genial algo que adicional permita enviar via whatsapp a algun numero especifo
Hola Amigo, como hago para que se grabe siempre con un nombre diferente (si el nombre del archivo esta en una determinada celda, y de ahi debe coger elnombre del archivo pdf,y no estar poniendolo manualmente)... Saludos desde el Cercado de Lima
Imaginemos que el nombre del PDF que quieres generar esta en la celda A1 de la hoja Datos. Deberas poner el siguiente codigo en la variable Nombre_PDF.
Nombre_PDF=Worksheets("Datos").range("A1").value
Cambia "Dartos" y "A1" segun corresponda
Saludos
@@maihuire11 Hola Amigo!, consulta, como lo puedo hacer en office 2016 para mac ? lo he intentado varias veces y no me sale. por favor dame una mano. me dice error printing.
@@adisepchile6540 Hola. Solo veo excel a nivel de windows. No manejo mac. Saludos
como puedo variar automaticamente la ruta del archivo donde se guardara el pdf por si quiero compartirlo con alguien mas
Hola, puedes poner en la variable ruta, la ruta de la macro por ejemplo:
Ruta=thisworkbook.path
@@maihuire11 lo voy a hacer gracias.
Y si quiero mandar un rango de celdas, ya que son diferentes proveedores.
Podrías hacer un tutorial de como hacerlo, por favor!
En el minuto 5:35 explico como mandar un rango de celdas.
@@maihuire11 Perdón, no me explique bien.
Me refiero a que yo tengo que enviar correos a cada proveedor en cada quincena, como podria decirle a excel que detecte este rango(este rango es variable) ya que cada proveedor manda diferentes facturas para pago y mandarlo a su respectivo correo.
he estado intentando mucho en vba pero no logro dar con la solución.
Saludos y MUCHAS GRACIAS.
Hola. Gracias por el tutorial. Cuando me genera el archivo PDF, siempre me aparece con un # en el margen izquierdo. Esto es normal? Saludos!
Quizas tengas esa informacion en una celda que no se muestra de manera completa. Por eso tr muestra en el pdf
@@maihuire11 Gracias!
Una duda, como sera para que el nombre del Archivo me genere con la fecha del Ordenador? Saludos,
Donde va el nombre del archivo puedes colocar este codigo. Replace(Date, "/", "-")
Saludos
Gracias, lo probare..
Me puedes ayuda? Me marca error en ‘9’
Te lo agradezco mucho
Hola, cual es la linea de codigo donde te marca error?
"Se ha producido el error 32809 en tiempo de ejecucion"
Error definido por la aplicacion o el objeto"!!!!
Ve bien la referencia de sheet que estás usando, no debes poner bodega, si el nombre es factura.
Se puede poner el nombre del propio libro excel? como?
Hola, claro que sí. Coloca este codigo en la variable
nombre_pdf = ThisWorkbook.Name
@@maihuire11 ahora perfecto , sale la extension tambien pero me vale si no hay remedio , ya no me sale el nombre de hoja , me suscribo y like :)
@@fbbinoire201 claro que si hay remedio, reemplazalo con este codigo.
nombre_pdf = VBA.Left(ThisWorkbook.Name, VBA.Len(ThisWorkbook.Name) - 5)
Saludos
@@maihuire11 Muchísimas Gracias , eres el mejor 💪🏻
podrías hacer algo con Calendario
Ok. Estimado, lo hare pronto.
Fernando Barrios ya hice un video con calendario