¿Cómo renombrar de forma masiva archivos PDF a partir de una lista Excel?

Tengo una carpeta con más de 1000 archivos escaneados en PDF.
Se guardaron automáticamente con un numero progresivo y con la fecha ejemplo:

895_16-03-2018-141733. Pdf

903_16-03-2018-141733. Pdf

1000_16-03-2018-141733.pdf
Y tengo un listado en Excel con 1000 registros que corresponden a los nombres de cada uno de los archivos escaneados, ejemplo:

UEFA-895-CREDITO-2021. (Excel)

UEFA-903-CONTADO-2021. (Excel)

UEFA-1000-CHEQUE-2021. (Excel)
Necesito renombrar los PDF´S con base al listado de Excel, como lo muestro en el ejemplo anterior, el dato coincidente es el número 895, 903, 1000, como se puede observar en el listado de Excel, los primeros cuatro caracteres serán siempre son los mismos y también el año, lo que cambia además del número es el tipo de pago; como verán, en el PDF dicho número está al inicio y en el Excel el número está en medio, entonces, lo que pretendo es que el PDF se renombre tal y como esta en el listado de Excel.

1 Respuesta

Respuesta
3

Revisa lo siguiente:

1. El número progresivo en el archivo va al inicio del nombre y después lleva un guión bajo ( _ )

895_16-03-2018-141733. Pdf

2. Los nombres en excel empiezan en la celda A2 y hacia abajo

3. Los nombres en excel no tienen la extensión ".pdf"

4. El número progresivo, del nombre de archivo, que se encuentra en la celda, es el segundo dato después del guión medio ( - )

UEFA-895-CREDITO-2021

5. Debes ajustar el nombre de la carpeta donde tienes los archivos.

---

Ejemplo. Tus archivos en la carpeta deben verse así:

Tus nombres en excel deben verse así:

---

Si lo anterior es correcto, no debes tener ningún problema con la macro:

Sub renombrar_pdf()
'Por Dante Amor
  Dim c As Range
  Dim ruta As String, arch As String, xfile As String
  '
  ruta = "C:\trabajo\salida\"   'poner el nombre de tu carpeta (\ diagonal al final)
  '
  For Each c In Range("A2", Range("A" & Rows.Count).End(3))
    xfile = ruta & Split(c, "-")(1) & "_*"
    If Dir(xfile) <> "" Then
      arch = Dir(xfile)
      Name ruta & arch As ruta & c.Value & ".pdf"
    End If
  Next
End Sub

¡Muchas gracias! lo lleve a cabo y todo funciono correctamente, sin embargo, al modificar a propósito los nombres del listado de Excel para volver a ejecutar la macro y renombrar por segunda vez los archivos pdf, no paso nada. ¿Esto es normal?.

Si el archivo original:

"895_16-03-2018-141733.Pdf"

Ya lo cambiaste a:

"UEFA-895-CREDITO-2021.pdf"

Y ejecutas nuevamente la macro, entonces ya no va a encontrar un archivo que empiece con:

"895", porque ya no existe.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas