Excel - Renombrar Fichero .pdf con dato en su interior.

 
Vista:

Renombrar Fichero .pdf con dato en su interior.

Publicado por donkayak (3 intervenciones) el 22/03/2009 18:55:08
La macro/botón final debe trabajar en cualquier sistema operativo (en Vista no me va) y realizarse con Adobe Reader.

1.- Necesito abrir un fichero [color=blue]NNNNNNNN.pdf[/color] y localizar una serie de caracteres fácilmente identificables (sería un chorizo de 15 números que empiezan por el año [color=brown]2009NNNNNNNNNNN[/color] ) y localizables (situados a continuación de la palabra pedido_: ) , tal que se extrajera [color=brown]2009NNNNNNNNNNN[/color].

2.- Renombrar el fichero [color=blue]NNNNNNNN.pdf[/color] , poniendole a continuación el chorizo extraido en el apartado 1 ( pedido_: [color=brown]2009NNNNNNNNNNN[/color] )

Debiendo quedar así: [color=blue]NNNNNNNN[/color][color=red]_[/color][color=brown]2009NNNNNNNNNNN[/color].pdf

[url=http://www.ayudaexcel.com/foro/attachments/macros-y-programacion-vba/2963d1235903430-extraer-dato-de-un-archivo-pdf-76298132.pdf]AQUÍ[/url] dejo un link para obtener un fichero ejemplo de donde extraer el dato [color=brown]209NNNNNNNNN[/color]

[code]Sub buscar20091111()

' buscar20091111 Macro
' Macro grabada el 02/03/2009 por .
'

'
' Shell ("C:Program FilesAdobeAcrobat 7.0ReaderAcroRd32.exe C:orrar76298132.pdf")
Application.Run "BOTON_pDF.xls!Macro1" ' llamo la macro que arranca la aplicacion y el fichero .pdf

SendKeys "+^(F)" ' lanzo la secuencia ''buscar'' mediante mayúsculas (+) , control (^), y la letra F
SendKeys "200911111" ' lanzo la búsqueda de la parte del fichero 200911111
Application.Wait Now + TimeValue("0:00:02") ' hago una pausa
SendKeys "{ENTER}" ' lanzo la tecla intro con la cadena {ENTER}
SendKeys "^(c)" ' copio la cadena que por defecto se marca al completo ejemplo 200911111***
' [b][color=red]EN ESTE PUNTO SURGE EL PROBLEMA, PUES NO SIEMPRE COPIA LO MARCADO[/color][/b]
SendKeys "+^(s)" ' inicio el salvado del fichero
Application.Wait Now + TimeValue("0:00:02") ' hago una pausa
SendKeys "{END}" ' me posiciono al final del nombre del fichero
Application.Wait Now + TimeValue("0:00:02") ' hago una pausa
SendKeys "{LEFT}{LEFT}{LEFT}{LEFT}" ' Me pongo justo delante del punto del pdf osea .pdf
SendKeys "(_)"
SendKeys "^(v)" ' Pego la cadena anteriormente buscada
Application.Wait Now + TimeValue("0:00:02") ' hago una pausa
SendKeys "{ENTER}" ' Pincho intro para guardar
Application.Wait Now + TimeValue("0:00:02")
SendKeys "^(q)" ' Cierro la ventana del .pdf

End Sub[/code]

¡Gracias!
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

RE:Renombrar Fichero .pdf con dato en su interior.

Publicado por donkayak (3 intervenciones) el 22/03/2009 18:59:45
La macro/botón final debe trabajar en cualquier sistema operativo (en Vista no me va) y realizarse con Adobe Reader.

1.- Necesito abrir un fichero NNNNNNNN.pdf y localizar una serie de caracteres fácilmente identificables (sería un chorizo de 15 números que empiezan por el año 2009NNNNNNNNNNN ) y localizables (situados a continuación de la palabra pedido_: ) , tal que se extrajera 2009NNNNNNNNNNN.

2.- Renombrar el fichero NNNNNNNN.pdf , poniendole a continuación el chorizo extraido en el apartado 1 ( pedido_: 2009NNNNNNNNNNN )

Debiendo quedar así: NNNNNNNN_2009NNNNNNNNNNN.pdf

AQUÍ dejo un link para obtener un fichero ejemplo de donde extraer el dato 209NNNNNNNNN
( http://www.ayudaexcel.com/foro/attachments/macros-y-programacion-vba/2963d1235903430-extraer-dato-de-un-archivo-pdf-76298132.pdf )

Esto es lo que he desarrollado hasta ahora:

Sub buscar20091111()

' buscar20091111 Macro
' Macro grabada el 02/03/2009 por .
'

'
' Shell ("C:Program FilesAdobeAcrobat 7.0ReaderAcroRd32.exe C:orrar76298132.pdf")
Application.Run "BOTON_pDF.xls!Macro1" ' llamo la macro que arranca la aplicacion y el fichero .pdf

SendKeys "+^(F)" ' lanzo la secuencia ''buscar'' mediante mayúsculas (+) , control (^), y la letra F
SendKeys "200911111" ' lanzo la búsqueda de la parte del fichero 200911111
Application.Wait Now + TimeValue("0:00:02") ' hago una pausa
SendKeys "{ENTER}" ' lanzo la tecla intro con la cadena {ENTER}
SendKeys "^(c)" ' copio la cadena que por defecto se marca al completo ejemplo 200911111***
' [b][color=red]EN ESTE PUNTO SURGE EL PROBLEMA, PUES NO SIEMPRE COPIA LO MARCADO[/color][/b]
SendKeys "+^(s)" ' inicio el salvado del fichero
Application.Wait Now + TimeValue("0:00:02") ' hago una pausa
SendKeys "{END}" ' me posiciono al final del nombre del fichero
Application.Wait Now + TimeValue("0:00:02") ' hago una pausa
SendKeys "{LEFT}{LEFT}{LEFT}{LEFT}" ' Me pongo justo delante del punto del pdf osea .pdf
SendKeys "(_)"
SendKeys "^(v)" ' Pego la cadena anteriormente buscada
Application.Wait Now + TimeValue("0:00:02") ' hago una pausa
SendKeys "{ENTER}" ' Pincho intro para guardar
Application.Wait Now + TimeValue("0:00:02")
SendKeys "^(q)" ' Cierro la ventana del .pdf

End Sub

El problema es que el portapapeles o el ''paste'' no se realiza bien en Vista . Hay alguna solución?

¡Gracias!
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