Jump to content

Renombrar archivo word con macro. titulo en la primera linea


Recommended Posts

Hola! Alguien sabe como puedo crear una macro en word para guardar un documento en pdf cuyo nombre sea la primera linea del word?

el proceso que realizo siempre es: en un documento en blanco nuevo, pego la informacion que quiero y ejecuto una macro, que cambia el formato y otras muchas cosas. ahora quiero completarla guardando el documento en pdf, con el nombre de la primera linea.

he hecho una macro pero el nombre del pdf resultante es siempre el mismo, es decir, no es el de la primera linea.

Alguien puede decirme cómo se hace eso, si se puede?

Muchas gracias.

Link to comment
Share on other sites

  • 3 weeks later...

Prueba con esta macro grabada en word 2007.

Sub Macro1()
'
' Macro1 Macro
'
'
Selection.MoveRight Unit:=wdCharacter, Count:=15, Extend:=wdExtend
Selection.Copy
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
"C:\Documents\LOS INVENCIBLES.pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub
[/CODE]

LOS INVENCIBLES.rar

Link to comment
Share on other sites

Muchas gracias Rolano. Lo que pasa es que al ejecutar tu macro el archivo se llama "LOS INVENCIBLES", sea cual sea la primera línea, que es lo q quiero q sea el nombre del archivo.

Explico un poco más. lo que hago es copiar de una web los diálogos de una película en inglés para seguir el dialogo mientras veo la peli. pego en word y por ejemplo cambio el tamaño de la fuente. guardo como pdf en dropbox y así lo tengo en la tablet en un momento.

en la primera línea pongo el título de esa peli, por eso quiero q el nombre del archivo sea distinto cada vez.

si no se puede hacer con una macro, pues no pasa nada x hacerlo manualmente, pero aprovecho ya q estoy aprendiendo macros.

otra vez, gracias!

Link to comment
Share on other sites

Hola camaleon11, dejame verlo mañana, no se por que no funca con este codigo. Haber si tu vez el error.

Sub Macro1()
'
Dim mitexto As String
mitexto = ActiveDocument.Range(Start:=0, End:=15)
'ActiveDocument.Path & “” & ActiveDocument.Name & “.pdf”

ActiveDocument.ExportAsFixedFormat OutputFileName:= _
ActiveDocument.Path & "" & mitexto & ".pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub
[/CODE]

Link to comment
Share on other sites

Haber ahora creo que ya esta

Sub Macro1()
Dim titulo As Variant
Dim intLineas As Integer

intLineas = ActiveDocument.Characters.Count

For i = 0 To intLineas

Set titulo = ActiveDocument.Range(Start:=0, End:=i)

Next i

titulo = Replace(titulo, Chr(13), "")

ActiveDocument.ExportAsFixedFormat OutputFileName:= _
ActiveDocument.Path & "\" & titulo & ".pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False

'ActiveDocument.Path & “” & ActiveDocument.Name & “.pdf”


End Sub[/CODE]

Link to comment
Share on other sites

Hola [uSER=183348]@camaleon11[/uSER], he estado leyendo tu tema, creo que tu tienes un título en word pero tambien hay parrafos. esta macro coge la primera linea del documento.

Sub GrabarApdf()
Dim titulo As Variant
Dim intLineas As Integer

Selection.HomeKey wdStory
intLineas = Selection.HomeKey & Selection.EndKey

For i = 0 To intLineas

Set titulo = ActiveDocument.Range(Start:=0, End:=i)

Next i

titulo = Replace(titulo, Chr(13), "")

ActiveDocument.ExportAsFixedFormat OutputFileName:= _
ActiveDocument.Path & "\" & titulo & ".pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False

'ActiveDocument.Path & “” & ActiveDocument.Name & “.pdf”

End Sub[/CODE]

Link to comment
Share on other sites

Gracias Rolano! Ahora ya funciona perfectamente. He tenido que cambiar alguna cosa. En lugar de

ActiveDocument.Path & "\" & titulo & ".pdf" he puesto la direccion donde quiero enviar el documento. Al guardar en dropbox me sale directamente en la tablet. Al final queda así:

Sub GrabarApdf()

Dim titulo As Variant

Dim intLineas As Integer

Selection.HomeKey wdStory

intLineas = Selection.HomeKey & Selection.EndKey

For i = 0 To intLineas

Set titulo = ActiveDocument.Range(Start:=0, End:=i)

Next i

titulo = Replace(titulo, Chr(13), "")

ActiveDocument.ExportAsFixedFormat OutputFileName:= _

"C:\Users\Alex14\Dropbox\" & titulo & ".pdf", ExportFormat:= _

wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _

wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _

Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _

CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _

BitmapMissingFonts:=True, UseISO19005_1:=False

ChangeFileOpenDirectory "C:\Users\Alex14\Dropbox\"

End Sub

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
  • 37 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      155
    • Comments
      89
    • Reviews
      25

    Latest File
    By pegones1

    1    0

  • Crear macros Excel

  • Posts

    • Hola, perdona la demora al responder, no he podido verlo hasta hoy, me ha venido de lujo, muchas gracias 👌
    • Hola, estoy iniciandome en el tema de vba y tal, asi que intentaré explicarme lo mejor posible   Tengo un boton de comando que me abre un "userform", dentro de ese "userform" hay 2 combobox y varios "label". En el "combobox1" se me abre un listado desplegable donde me aparecen los valores "azul, verde,amarillo,rojo... etc" y el "combobox2" abre un listado con los valores que van del 1 al 100, y ahora viene el problema... yo quiero que dependiendo del valor del "combobox1", me muestre SOLO parte de ese listado de valores del 1 al 100. Es decir, al seleccionar en el "combobox1" el valor "azul" quiero que SOLO me muestre los valores del 21 al 30, si selecciono el valor "rojo" quiero que SOLO me muestre los valores del 31 al 40. y asi con cada uno de los colores. Asi que no sé si debo hacer 1 listado general con esos valores del 1 al 100, o es mejor hacerlo de otro modo. es decir, no sé como decirle algo similar en VBA a: en el combobox 2--> si combobox1es igual a "azul" entonces muestrame los valores de la tabla que van desde B46:B55, pero si combobox1 es igual a "rojo entonces muestrame los valores de la tabla que van desde B56:B65.... e ir metiendo condicionantes. El problema es que no sé como hacer esas formulaciones en VBA.   actualmente el combobox1 dice lo siguiente:  Me.ComboBox1.List = Sheets("Colores").Range("A15:A24").Value y el combobox2 dice lo siguiente:  Me.ComboBox2.List = Sheets("Valores").Range("H6:H105").Value   Como he dicho, no sé cómo hacer que el "combobox2" "desglose" ese rango de 100 valores en rangos de 10 en 10 dependiendo de lo que diga "combobox1".   A su vez, por ejemplo si en el combobox1 selecciono el azul y en el combobox2 selecciono el valor 24. hay unos "labels" que me muestran diferentes valores segun lo que diga el "combobox2", en este caso me mostraria el valor "73A4BF" esto es lo que pone en VBA de ese label1: Me.Label1.Caption = Valor1 Valor1 = Application.WorksheetFunction.VLookup(Me.ComboBox2.Value, Sheets("Valores").Range("B:G"), 2, 0)   A todo esto, decir que mi vocabulario en tema de VBA es muy basico. Por lo que cualquier ayuda agradeceria una explicacion algo detallada. Un saludo!  
    • Buenos días,   Adjunto fichero. Un saludo, Paco HOJA CALCULO.xlsx
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy