Visual Basic - Utilizar texto del documento como nombre del archivo

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Utilizar texto del documento como nombre del archivo

Publicado por Eduardo (7 intervenciones) el 15/10/2019 20:23:09
Estoy trabajando con combinar correspondencia para generar cartas a clientes, tengo una macro que divide el documento en varios archivos pdf pero me gustaría que cada archivo pdf resultante tuviera de nombre de archivo el nombre de cada uno de los pacientes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub GUARDAR_HOJAS()
 
Dim num_paginas As Integer
Dim num_doc As Integer
Dim pag_inicial As Integer
Dim pagina_final As Integer
Dim URL As String
Dim nombres As String
 
 
num_paginas = InputBox("Ingrese el numero de paginas por documento")
num_doc = InputBox("¿Cuantos documentos desea generar?")
URL = "C:\Users\Jesus Baltazar\Documents\Portadas"
nombres = Portadas
pag_inicial = 1
pagina_final = num_paginas
 
For i = 1 To num_doc
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        URL & "\" & nombres & i & ".pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=pag_inicial, To:=pagina_final, Item:= _
        wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    ChangeFileOpenDirectory URL
 
pag_inicial = pagina_final + 1
pagina_final = pagina_final + num_paginas
Next i
 
End Sub

Agradecería cualquier ayuda para llegar a lo que necesito
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Utilizar texto del documento como nombre del archivo

Publicado por Andres Leonardo (1798 intervenciones) el 15/10/2019 20:51:00
Pero es que le das Nombres el contenido de portadas? que es portadas???

Y si , lo que estas haciendo es lo correcto para mi ya que con eso te grabaria el contenido con un nombre.

SALudos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Utilizar texto del documento como nombre del archivo

Publicado por Eduardo (7 intervenciones) el 15/10/2019 20:56:29
Hola Andres, gracias por tu respuesta

Le deje nombre de portadas por que así se conoce al archivo. Los archivos que se generan de combinar correspondencia empiezan con estos tres datos, me gustaría poder tomar el nombre y usarlo para nombrar los archivos independientes que se generan a partir de mi macro

Nombre: JESUS ROBERTO AVILA IBARRA
Edad: 47
Sede: México
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Utilizar texto del documento como nombre del archivo

Publicado por Andres Leonardo (1798 intervenciones) el 15/10/2019 21:48:21
Es correcto lo que no se de donde rescatas el nombre de la persona , por eso te preguntaba si era en la variable portadas, ya que de alguna manera (sea con una variable global o un parametro en el procedimiento) se debe enviar este dato para que se actualice , el tema es cuando lo llamas de donde sacas el valor quizas algun valor adicional en la macro o dentro del documento???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Utilizar texto del documento como nombre del archivo

Publicado por Eduardo (7 intervenciones) el 15/10/2019 21:50:55
El nombre de la persona lo rescato con combinar correspondencia, así saco el nombre de todos los clientes y se crean las cartas para cada uno de ellos, al momento de terminar la parte de combinar correspondencia se crea un documento con N hojas dependiendo del numero de clientes con los que cuente la base de datos donde están almacenados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Utilizar texto del documento como nombre del archivo

Publicado por Andres Leonardo (1798 intervenciones) el 15/10/2019 22:08:25
Ok entonces lo recuperas asi


1
msbox ActiveDocument.MailMerge.DataSource.DataFields("Nombre").Value

siempre y cuando en tu base o el nombre de tu campo sea Nombre



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub GUARDAR_HOJAS()
 
Dim num_paginas As Integer
Dim num_doc As Integer
Dim pag_inicial As Integer
Dim pagina_final As Integer
Dim URL As String
Dim nombres As String
 
 
num_paginas = InputBox("Ingrese el numero de paginas por documento")
num_doc = InputBox("¿Cuantos documentos desea generar?")
URL = "C:\Users\Jesus Baltazar\Documents\Portadas"
nombres = Portadas
pag_inicial = 1
pagina_final = num_paginas
 
For i = 1 To num_doc
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        URL & "\" & ActiveDocument.MailMerge.DataSource.DataFields("Nombre").Value & i & ".pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=pag_inicial, To:=pagina_final, Item:= _
        wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    ChangeFileOpenDirectory URL
 
pag_inicial = pagina_final + 1
pagina_final = pagina_final + num_paginas
Next i



PD:

la informacion constaba ya en un hilo de este mismo foro

https://www.lawebdelprogramador.com/foros/Word/1377280-Guardar-doc-con-el-nombre-del-valor-que-da-un-campo-combinado.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Utilizar texto del documento como nombre del archivo

Publicado por Eduardo (7 intervenciones) el 15/10/2019 22:52:49
Me aparece un error de compilación

No se ha definido Sub o Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Utilizar texto del documento como nombre del archivo

Publicado por Eduardo (7 intervenciones) el 15/10/2019 23:30:35
Pude guardar el archivo con el nombre tal como lo deseaba pero ahora me encuentro con el problema de que se tiene que hacer manual por cada carta de la combinación de correspondencia por que si las uno todas y se corta la conexión me marca error y si inicio la conexión solo imprime el nombre del primer registro, no va cambiando de registro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar