Cambiar nombre de archivos desde Excel con macros

Cuando he tenido la necesidad de realizar alguna labor, siempre pienso si en Excel es posible, y esta ocasión no fue la excepción.

Surge la necesidad de cambiarle el nombre a un grupo de archivos que están almacenados en el disco duro, pero por lotes, lo que implicaría cambiar el nombre uno por uno o conseguirse algún software que lo haga. Pero si ya tenemos Excel, lo hacemos en Excel.

Primeramente vamos a hacer uno de la última herramienta añadida al EXCELeINFO addin, que es la de Listar archivos, esto para tener la ruta completa y el nombre de los archivos a cambiar. Armamos el siguiente archivo:

Ver Video Cambiar nombres de archivos de manera masiva

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

En la columa D, vamos a introducir la siguiente fómula.

=IZQUIERDA(A2,ENCONTRAR(B2,A2)-1)&C2

image

 image

  • Colunma A: ruta completa del archivo a cambiar.
  • Columna B: nombre de archivo a cambiar.
  • Columna C: nombre del nuevo archivo (con extensión).
  • Columna D: fórmula que concatena la ruta del archivo anterior con el nombre nuevo.

Es indispensable o por lo menos es lo que recomiendo, que hagamos la consulta de los nombres de los archivos para tener el dato actualizado, aunque también podremos ingresar los datos manuales de ruta, nombres anterior y nuevo nombres.

Para el archivo armado en este ejemplo, utilizaremos la siguiente macro:

Sub CambiarNombre()
'Antes de correr la macro, elije las celdas que tengan la ruta
'del nombre actual, es decir a partir de A2
Dim NombreNuevo As String
Dim NombreAnterior As String
'Si no encuentra algún archivo, continuará con el siguiente
On Error Resume Next
For Each Celda In Selection
    NombreAnterior = Celda.Value
'El dato del nombre nuevo será la columna D, especificado con 3
    NombreNuevo = Celda.Offset(0, 3).Value
    Name NombreAnterior As NombreNuevo
Next Celda
On Error GoTo 0
End Sub

:: Descargar el ejemplo

Tienes comentarios, crees que te pueda servir en un futuro ?

You may also like...

16 Responses

  1. Jorge Carlos Ehuan Canul says:

    gracias

  2. Carlos Y. says:

    Muchas gracias, es muy util, pero una vez has abierto los archivos en excel, ? como se ejecuta para que realice los cambios en los archivos??
    Gracias

    • sergioacamposh says:

      No entiendo muy bien tu pregunta. Nos archivos a los que les quieres cambiar el nombre deben estar cerrados.

      Se te presenta alguna situación en especifico ??

  3. Leonel G. says:

    Hola, una duda sabrás si se podrá realizar esto pero para cambiar el nombre a las hojas de Excel de varias archivos.

  4. CRM says:

    Gracias, funciona excelente!

  5. Daniel Ordóñez Escalante says:

    mi pregunta, algo tardia, pero como se supone que se ejecuta este script para que realice el cambio de los nombre?

  6. JL SIMU says:

    Hola, muchas gracias por la info! pero hay algún video de como hacer esto? no me manejo mucho con las macros.. saludos!

  7. fernando islas says:

    Hola
    Cuando ejecuto la macro solo lo hace con la fila seleccionada, si la ejecuto en A2 se cambia solo el nombre al archivo que hace referencia, por lo que para que realice la tarea de las demás filas tengo que seleccionar A3, A4, etc. y con un atajo (crtl+x) se puede cambiar el nombre a todos los archivos aunque sea de uno por uno es mas rapido que realizarlo en el explorador de archivos.

    Aunque si es más rápido que realizar la tarea por medio del explorador, todavia me queda duda de por que no se realiza en todos los archivos a la vez.

    la version de office es 2016 y la macro es la que se descarga con el ejemplo

    ‘Sergio A Campos H
    ‘http://exceleinfo.wordpress.com
    ’03-Oct

    Sub CambiarNombre()
    ‘Antes de correr la macro, elije las celdas que tengan la ruta
    ‘del nombre actual, es decir a partir de A2
    Dim NombreNuevo As String
    Dim NombreAnterior As String
    ‘Si no encuentra algún archivo, continuará con el siguiente
    On Error Resume Next
    For Each Celda In Selection
    NombreAnterior = Celda.Value
    ‘El dato del nombre nuevo será la columna D, especificado con 3
    NombreNuevo = Celda.Offset(0, 3).Value
    Name NombreAnterior As NombreNuevo
    Next Celda
    On Error GoTo 0
    End Sub

    Si me puede apoyar revisando por que no se ejecuta en todos los archivos a la vez quedare muy agradecido.

  1. October 10, 2012

    […] Cambiar nombre de archivos desde Excel con macros […]

  2. February 10, 2014

    […] En base a una consulta en el Blog sobre mover archivos de cierta extensión de una carpeta a otra, es que remoto el tema de la instrucción Name, que nos sirve para renombrar archivos o moverlos de ubicación. Dicha instrucción ya la había usado en el artículo Cambiar nombre de archivos desde Excel con macros. […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: