Jump to content

Guardar un documento word generado con excel con un nombre determinado y variable


Recommended Posts

Hola comunidad de excel! Les vengo con un reto interesante. Estoy tratando de hacer un excel el cual rellene los mismos datos en 3 planillas diferentes de word, esto supe como hacerlo con una macro que usa las funciones buscar y reemplazar de excel. Pero ademas de eso quiero que guarde las planillas de word bajo un nombre que contiene un codigo que tambien es parte de los datos que ingreso en la hoja de excel. La verdad no tengo ni idea de como hacer eso. Para que entiendan bien a que me refiero les pondre un ejemplo:

Los datos a ingresar son:
Nombre
Telefono
Email
Codigo de compra

Quiero que una vez todos los datos hayan sido sustituidos en la planilla de word esta se guarde con el nombre "Cotizacion + Codigo de compra".
Es mas, una vez guardado el word quiero quier tambien se guarde en formato en pdf.

Si necesitan el excel con el que he estado trabajando para que entiendan mejor que es lo que estoy haciendo pueden pedirmelo

De antemano muchas gracias.

Link to comment
Share on other sites

Hola @DanielaAlcala22

Solo pude controlar la macro "generar_word_3R" porque estoy por salir.

Fiajte si te entendí bien y es lo que andabas buscando.

Si deseas agradecer el tiempo invertido en procurar una solución al pedido, abajo a la derecha de cada mensaje encuentras un corazón.

Suerte!

ae20210619_post44993_datos_licitaciones.xlsm

Link to comment
Share on other sites

Posted (edited)

@tierra_pampaPrimeramente muchisimas gracias por tomarte el tiempo de ver mi problema, ya estaba perdiendo la esperanza de que alguien respondiera. Sin embargo creo que no se ha dado con la solucion. Descarque el archivo que adjuntaste y cuando quise correr el codigo me salio este error

image.thumb.png.89d73b3bfa22e38872c270b5a103acdc.png

Le doy a depurar y me señala esta linea de codigo.

image.thumb.png.1a56ba5951eb6172e46faa795a26c717.png

Intente leer el codigo que habias añadido para ver si entendia lo que quisiste hacer y capaz hallaba lo solucion, pero lamentablemente mi ignoracion fue mas y no entendi bien que hiciste. Tal vez si me lo explicaras podria ver cual ver que es lo que fallo.

 

Edited by DanielaAlcala22
Link to comment
Share on other sites

Hola de nuevo @DanielaAlcala22!

Según el traductor, el mensaje de error (no entiendo el inglés) dice: "Lo sentimos, no pudimos su archivo. Fue movido, renombrado, o borrado". Para que se ejecute el código debes tener el archivo "cotización.docx" en la ruta que tú dispones (unión de las variables ruta1 y ruta2). El mensaje te está advirtiendo que dicho archivo no está en la ruta o tiene otro nombre. Trata de copiar el nombre del archivo y pegarlo en el código para asegurar que no tiene diferencias, algún acento, etc.
También puedes ejecutar el código con ambos archivos en una misma ruta (C:\); en dicho caso la variable debrá quedar así: ruta2 = ""

Modifiqué nuevamente el archivo para agregar unas cajas de mensajes para que sepas dónde tienes que dejar el archivo "cotización.docx" (por favor, fijate de guardarlo en formato docx!). Después de probar, puedes borrarlas o dejarlas.
Revisa nuevamente por favor y avisas cualquier error.
Suerte!

ae20210619_post44993_datos_licitaciones.xlsm

Link to comment
Share on other sites

@tierra_pampa Eres un genio! ya se guarda el documento en la carpeta y en con el nombre con el codigo que uno introdusca. Ahora me gustaria que de ese mismo documento word se guardara un documento pdf con el mismo nombre y todo estoy tratando de usar las siguientes lineas de codigo pero no genera el pdf

 

ObjWord.Documents(ruta & nombre).ExportAsFixedFormat OutputFileName:=ruta & nombre, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False

'ruta' sigue teniendo el valor que tu le habias designado pero 'nombre' es lo que tu habias llamado arch03

Cuando lo corro me arroja un error que dice: Llamada a procedimiento o argumento no válido
 

Aqui abajo te ddejo el codigo completo

Sub generar_word_3R()

ruta1 = ActiveWorkbook.Path & "\"
ruta2 = "Trabajo gerardo\Licitaciones 3R\"
plantilla = "Cotizacion.docx"

nombre = Sheet1.Cells(2, 3).Value & Sheet1.Cells(3, 3).Value
ruta = ruta1 & ruta2

Set ObjWord = CreateObject("Word.Application")
ObjWord.Visible = True

Set objDoc = ObjWord.Documents.Add(Template:=ruta & plantilla, NewTemplate:=False, DocumentType:=0)

For i = 3 To 10
    busqueda = Sheet1.Range("D" & i).Text
    reemplazar = Sheet1.Range("C" & i).Text
    With ObjWord.Selection.Find
        .Text = busqueda
        .Replacement.Text = reemplazar
        .Execute Replace:=2
    End With
Next i
For n = 13 To 16
    busqueda = Sheet1.Range("D" & n).Text
    reemplazar = Sheet1.Range("C" & n).Text
    With ObjWord.Selection.Find
        .Text = busqueda
        .Replacement.Text = reemplazar
        .Execute Replace:=2
    End With
Next n


objDoc.SaveAs Filename:=ruta & nombre 'guarda el archivo con las modificaciones
ObjWord.Documents(ruta & nombre).ExportAsFixedFormat OutputFileName:=ruta & nombre, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False

ObjWord.Quit

End Sub

 

Link to comment
Share on other sites

@tierra_pampa funciona de maravilla y ya vi cual fue mi error de concepto: pensaba que poniendo ruta & nombre dentro del argumento de Documents identificaba el word que queria transformar a pdf y lo iba a guardar de igual manera. Pero por lo que veo tenia que usar eso en el comando  OutputFileName y ademas anadirle la extension ".pdf". Muchisimas gracias! y feliz dia del padre si es su caso!.

Si puedo molestarlo con una ultima consulta. Quisiera poder hacer el mismo procedimiento de sustituir los datos de excel a una planilla de word, pero esta vez los campos den de se debe sustituir la informacion estan dentro de un encabezado. Me di cuenta que con el codigo de sustitucion que estaba usando para la planilla anterior no logro llegar a esos campos. Tienes idea de que comando puedo usar para que el excel entienda que desbe sustituir los datos dentro del encabezado del word? anexo la planilla para que entiendas a lo que me refiero.

Proyecto.docx

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Crear macros Excel

  • Posts

  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy