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
-
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
Tienes comentarios, crees que te pueda servir en un futuro ?
gracias
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
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 ??
me podrias enseñar como ejecutar el script para que realice el cambio de nombre?
Hola, una duda sabrás si se podrá realizar esto pero para cambiar el nombre a las hojas de Excel de varias archivos.
Con el siguiente artículo te podrás guiar para hacer lo que requieres.
https://blogs.itpro.es/exceleinfo/2013/07/22/macro-para-modificar-archivos-de-excel-sin-abrirlos/
Gracias, funciona excelente!
mi pregunta, algo tardia, pero como se supone que se ejecuta este script para que realice el cambio de los nombre?
Debes guiarte en el archivo adjunto.
Columna A: Ruta completa de tus archivos.
Columna B: Nombre de tus archivos con extesión.
Columna C: Nombres nuevos con extesión.
Columna D: Tiene fórmula.
Puedes guiarte en este artículo para enlistar los nombres de tus archivos en una hoja de Excel. http://www.exceleinfo.com/conociendo-exceleinfo-addin/conociendo-exceleinfo-addin-listar-archivos-en-tabla-de-excel/
estimado, muchas gracias por su ayuda, me haz salvado la vida
Me da gusto.
Hola, perdón por las molestias. No me funciona. Hice la prueba solo con un archivo y no pasa nada. Consulta: tengo que ejecutar algo mas en esa fórmula de la columna D? Porqe voy al explorador de Windows donde está el archivo original y no está el nuevo. Me ayudas por favor? Desde ya mil gracias..!
Hola, muchas gracias por la info! pero hay algún video de como hacer esto? no me manejo mucho con las macros.. saludos!
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.