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...
> ... 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
¿¿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 >>
>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 ???
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??...
> ...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...!
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>>
> 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....!
> 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
....!!
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
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
--