Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Combinacion correspondencia a pdf

1,122 views
Skip to first unread message

Tony

unread,
Sep 19, 2009, 6:22:01 AM9/19/09
to
Hola a todos:

Desde Word quiero crear una macro que me combine una plantilla que tengo
creada con un fichero de texto... Posteriormente, quiero que esa misma macro
me cree cada hoja del documento en formato PDF.

¿¿Como puedo hacerlo??...

Tengo Office 2000 y el PDFCreator para pasar a PDF los documentos...

Gracias por anticipado...

Monica May

unread,
Sep 19, 2009, 7:18:35 PM9/19/09
to
hola,

> ... Word quiero crear una macro que me combine
>...una plantilla que tengo


> creada con un fichero de texto...

>....Posteriormente, quiero que esa misma macro


> me cree cada hoja del documento en formato PDF.

> Tengo Office 2000 y el PDFCreator para pasar
>a PDF los documentos...

.... puedes utilizar la combinacion de correspondencia >>

Combinar correspondencia con Word: guia a traves del proceso
http://office.microsoft.com/es-es/word/HA010349203082.aspx

No dispongo ahora de un office 2000 ... para hacer las pruebas
correspondientes... pero es similar al enalce ofrecido.

Prueba y comentanos...!

Saludos
Monica

--
www.fermu.com
www.teladearana.es


Tony

unread,
Sep 20, 2009, 11:18:01 AM9/20/09
to
Gracias Mónica por el enlace... Combinar correspondencia sí que sé cómo se
hace, pero lo que no sé es que los archivos de texto creados vayan
directamente a PDF ni tampoco como puedo hacer todo el proceso desde una
macro que lo haga automáticamente...

¿¿Cómo puedo hacer lo que pido??...

Gracias de nuevo...

"Monica May" wrote:

> hola,
>
> > ... Word quiero crear una macro que me combine
> >...una plantilla que tengo
> > creada con un fichero de texto...
> >....Posteriormente, quiero que esa misma macro
> > me cree cada hoja del documento en formato PDF.
> > Tengo Office 2000 y el PDFCreator para pasar
> >a PDF los documentos...
>

> ..... puedes utilizar la combinacion de correspondencia >>

Monica May

unread,
Sep 20, 2009, 5:40:18 PM9/20/09
to
holas Tony,

>Combinar correspondencia si que se como se
> hace, pero lo que no se es que los archivos de texto


>creados vayan
> directamente a PDF ni tampoco como puedo hacer todo
>el proceso desde una

> macro que lo haga automaticamente...


bien si sabes ya realizar una combinacion de correspondencia entonces una
solucion rapida es la siguiente.....una vez tengas montada la combinacion
con todos los documentos en uno ...

aplica el siguiente articulo de nuestra companera Marta PM :) !!

Generar un documento para cada registro de una combinacion de
correspondencia
http://www.fermu.com/es/articulos/office/38-office/79

Una vez todos los documentos en una carpeta como cartas unicas tengas....
podras seleccionarlos todos y mandarlos a imprimir a una impresora PDF que
instalara el programa ...PDF Market ??? [complemento que no me gusta :( ]

puedes realizar las pruebas y comentarnos cualquier duda ???

Tony

unread,
Sep 23, 2009, 2:51:01 PM9/23/09
to
Gracias Mónica de nuevo...

El asunto está en que quiero que todo se haga desde una macro, tanto la
combinación de correspondencia como la separación de los documentos, así como
el pasarlos a PDF... No quiero que los usuarios tengan que seleccionar todos
los documentos y luego ponerlos a imprimir en PDF...

¿¿Cómo podría hacerlo desde la macro??...

Monica May

unread,
Sep 23, 2009, 4:05:51 PM9/23/09
to
hola,


> ...quiero que todo se haga desde una macro,
>tanto la combinacion de correspondencia
> como la separacion de los documentos, asi como


> el pasarlos a PDF... No quiero que los usuarios
> tengan que seleccionar todos
> los documentos y luego ponerlos a imprimir en PDF...


No tengo el [ PDF creator] instalado pero puedes probar los siguiente >>

'[]

Sub imprimir_mailmerge_pdf()

Dim i As Long
Dim x As Integer
i = 10
ActiveDocument.MailMerge.DataSource. _
ActiveRecord = wdFirstRecord

Do While x < i
x = x + 1
ActivePrinter = "impresora_pdf_aqui"
On Error Resume Next
Application.PrintOut FileName:="", _
Range:=wdPrintAllDocument, _
Item:=wdPrintDocumentContent, _
Copies:=1, _
Pages:="", _
PageType:=wdPrintAllPages, _
Collate:=True, _
Background:=True

ActiveDocument.MailMerge.DataSource. _
ActiveRecord = wdNextRecord
Loop
End Sub

'[]


Para crear un combinacion mediante codigo puedes utilizar la [ grabadora de
macros ] ya que realmente no se, si estas combinando cartas o mensajes o
sobres o etiquetas

...para cartas, por ejemplo>>

'[]

Sub Combinar_TXT()

ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource _
Name:="C:\ruta_archivo_.txt", _
ConfirmConversions:=False, _
ReadOnly:=False, _
LinkToSource:=True, _
AddToRecentFiles:=False, _
Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:="", _
SQLStatement:="", _
SQLStatement1:="", _
SubType:=wdMergeSubTypeOther

End Sub

'[]

Comentanos...!

Tony

unread,
Sep 24, 2009, 12:19:02 PM9/24/09
to
Gracias Mónica...

La parte de combinar correspondencia la he hecho mediante una macro,
grabando paso a paso...

En la parte para que lo envíe a PDF he puesto el código que me has puesto
(toda la primera parte) pero me da un error de ejecución en la línea que está
bajo el "i=10", concretamente en esta línea:

ActiveDocument.MailMerge.DataSource. _
ActiveRecord = wdNextRecord

Me da error en la ejecución y la macro se para, ¿qué es lo que está mal?...

Gracias de nuevo...

"Monica May" wrote:

> ....para cartas, por ejemplo>>

Monica May

unread,
Sep 24, 2009, 4:57:33 PM9/24/09
to
hola,

> La parte de combinar correspondencia la
>he hecho mediante una macro,
> grabando paso a paso...

> En la parte para que lo envie a PDF
>he puesto el codigo que me has puesto
> (toda la primera parte) pero me da un error de ejecucion
>en la linea que esta
> bajo el "i=10", concretamente en esta linea:


> ActiveDocument.MailMerge.DataSource. _
> ActiveRecord = wdNextRecord


La linea que esta bajo la variable [ i ] es la siguiente >>

'[]


ActiveDocument.MailMerge.DataSource. _
ActiveRecord = wdFirstRecord

'[]

Empieza desde el primer registro llegando al registro 10 valor de la
variable.

La linea que comentas:

> ActiveDocument.MailMerge.DataSource. _
> ActiveRecord = wdNextRecord

hace que pase el proximo registro>>

empezando desde el registro numero 1 [ Imprimir ] proximo registro [
Imprimir ] proximo Registro ....hasta el 10 y cuando llega a este valor,
sale del bucle finalizando el procedimiento.

Entonces pregunto:

-Cual de las dos lineas te da el error ?? [ FirstRecord ] o [ NextRecord ]
??

Comentanos....!

Tony

unread,
Sep 25, 2009, 3:39:01 PM9/25/09
to
Me da error en [FirstRecord]... ¿¿Qué puede ser??...

Monica May

unread,
Sep 25, 2009, 5:52:26 PM9/25/09
to
hola,

> Me da error en [FirstRecord].....Que puede ser??...

Vaya pues mal asunto :D porque dicho error indica que quizas no tienes
montada una combinacion de correspondencia ???

que tal... si nos das mas detalles de lo que has combinado o mejor aun pon
el codigo de la combinacion de correspondencia que has grabado y si has
ejecutado el procedimiento de dicha combinacion ??

-logicamente si te falla nada mas empezar es porque, me repito no hay
registros a combinar ???


Comentanos mas detalladamente si es posible el proceso que estas realizando
....!!

Tony

unread,
Sep 29, 2009, 11:22:07 AM9/29/09
to
Pues la combinación de correspondencia la realicé con la grabadora de macros...

Os dejo el código para que hagais el favor de decirme algo:

Sub Macro2()
'
' Macro2 Macro
' Macro grabada el 24/09/2009 por Antonio
'
ChangeFileOpenDirectory _
"C:\Documents and Settings\s138\Mis documentos\protocolo\"
Documents.Open FileName:="""Nuevo.doc""", ConfirmConversions:= _
False, ReadOnly:=False, AddToRecentFiles:=False,
PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With


Dim i As Long
Dim x As Integer
i = 10

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord


Do While x < i
x = x + 1

ActivePrinter = "PDFCreator"


On Error Resume Next
Application.PrintOut FileName:="", _
Range:=wdPrintAllDocument, _
Item:=wdPrintDocumentContent, _
Copies:=1, _
Pages:="", _
PageType:=wdPrintAllPages, _
Collate:=True, _
Background:=True

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Loop
End Sub

Monica May

unread,
Sep 30, 2009, 5:42:22 PM9/30/09
to

Hola Tony,


En mi primera respuesta te deje un link para que vieras como realizar una
combinacion de correspondencia, me dijiste que ya sabias realizarla .... El
codigo que expones no lleva combinacion de correspondencia el codigo >>

Simplemente abre un documento de Word que lleva YA la combinacion e intenta
enviar un resultado de una operacion de combinacion de correspondencia a un
nuevo documento ... en >>

.Destination = wdSendToNewDocument

Por lo tanto he supuesto que el archivo que lleva >>>> la combinacion es el
archivo segun tu codigo me vuelvo a repetir es el >>

FileName:="""Nuevo.doc"""

Logicamente el codigo de Imprimir te dara error en la linea que dices >>

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord

Porque realizas una combinacion completa en un nuevo documento de
[cartas.doc ] mediante la linea >>

Destination = wdSendToNewDocument

Por lo tanto el codigo para [ imprimir en PDF ] debes de ponerlo en el
documento [ Nuevo.doc ] y probar ahi el codigo ANTES de mandarlo a combinar
.....ya que el codigo se encargara de combinar cada registro en un PDF....

Lo que no entiendo es que preguntaras como realizar una combinacion de
correspondencia si lo que necesitabas era abrir un Archivo de Word que ya
lleva su combinacion de correspondencia ????

comentanos...!

Saludos
Monica


--

gpto

unread,
Oct 23, 2014, 5:40:19 AM10/23/14
to
Hola, estoy intentando aplicar la impresión a PDF masiva, y funciona ok, pero mi problema es que debería poder llamar a cada archivo pdf, como un concatenado de una cadena de texto, y uno de los valores combinados, para diferenciarlos correctamente, o al menos solo por el valor de cada uno.

de antemano gracias y un saludo

0 new messages