Combinacion correspondencia a pdf

19/09/2009 - 12:22 por Tony | Informe spam
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...

Preguntas similare

Leer las respuestas

#6 Tony
24/09/2009 - 18:19 | Informe spam
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", 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:

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:uta_archivo_.txt", _
ConfirmConversions:=False, _
ReadOnly:=False, _
LinkToSource:=True, _
AddToRecentFiles:=False, _
Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:="", _
SQLStatement:="", _
SQLStatement1:="", _
SubType:=wdMergeSubTypeOther

End Sub

'[]

Comentanos...!

Saludos
Monica

www.fermu.com
www.teladearana.es






Respuesta Responder a este mensaje
#7 Monica May
24/09/2009 - 22:57 | Informe spam
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", 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!

Saludos
Monica


www.fermu.com
www.teladearana.es
Respuesta Responder a este mensaje
#8 Tony
25/09/2009 - 21:39 | Informe spam
Me da error en [FirstRecord]... ¿¿Qué puede ser??...

"Monica May" wrote:

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", 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!

Saludos
Monica


www.fermu.com
www.teladearana.es


Respuesta Responder a este mensaje
#9 Monica May
25/09/2009 - 23:52 | Informe spam
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
!!


Saludos
Monica

www.fermu.com
www.teladearana.es
Respuesta Responder a este mensaje
#10 Tony
29/09/2009 - 17:22 | Informe spam
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
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida