Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Renombrar Archivos Intercambiando Cadena de Caracteres en Nombre Archivo


.

El ejemplo de macro que se presenta muestra como renombrar archivos o ficheros intercambiando una cadena de caracteres en en nombre del fichero, es una variante de otros ejemplos que se presentaron anteriormente que, este ejemplo permite tomar destreza en el manejo de cadenas de caracteres, texto o string, si requieres saber mas al respecto visita macro que trabajo con texto o string. Recuerda que en un ejemplo anterior se expuso como renombrar el archivo y crear un link al propio archivo, esto permite hacer click en el link que está en la celda de excel y abrir un archivo con solo un click son movernos de la hoja de Excel.

Recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
El vídeo verás la macro en acción con una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

 

Por favor considera la posibiliad de aportar para sostener el sitio, desde el link del final del post se puede descargar el ejemplo de macro, cada usuario puede adaptarlo a sus necesidades, la codificación está abierta y es de libre, se brinda en forma gratuita.

Para trabajar con el ejemplo o facilitar la comprensión del mismo, se debe descargar el archivo comprimido desde el final del link, este archivo contiene la macro y un fichero con varios archivo que la macro renombrará.

La macro en un primer momento nos da la opción para elegir la carpeta donde están los archivos a renombrar, luego se hace un bule de 1 a 10 que son los ficheros que contiene, próximamente voy a exponer una macro para contar los archivos de un directorio, suscriban desde el lado derecho de este web insertando solamente el mail para que se le mande un aviso a su casilla de correo.

Luego empieza a hacer el bucle recorriendo archivo por archivo, lo que hace la macro es leer la cadena de caracteres, establecer donde se encuentra el número que contiene el nombre de cada fichero, estableciendo la posición de este número en el nombre del fichero se extrae la cadena de texto que se encuentra delante y detrás del numero agregándolos a variables.

Los códigos siguientes son los que permiten extraer el número inserto en el nombre del fichero, luego se concatena poniendo el número extraído y cargado en la variable num; con la primer parte del nombre del archivo, cargado en la variable pp y la última parte del nombre del archivo cargado en la variable sp.

 esp2 = InStr(esp1 + 1, b, » «)

num = Mid(b, esp1 + 1, esp2 – 1 – esp1)
pp = Left(b, esp1 – 1)
sp = Mid(b, esp2 + 1)
nomnew = path1 & «» & num & » » & pp & » » & sp

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también

Buscar datos mientras se escribe en textbox y mostrar en hojas en hojas de Excel

Como acelerar busqueda en Listbox en Excel mientras se escribe en textbox

Como pasar varios datos datos con Enter de un Listbox multiselect a hojas de Excel

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

Renombrado el fichero, que se logran con la siguiente linea de código:

Name nomold As nomnew

Se procede a pasar al siguiente fichero y realizar el paso descripto, hasta que se llegue al número 10 que es el último valor que debe tomar la variable del bucle.

La codificación del ejemplo se encuentra a continuación, pero es necesario descargar el fichero para poder entender con facilidad lo que se intenta explicar.

Código que se inserta en un módulo

Sub RenombraArchivo()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim path1 As String, ruta As String, texhipv As String
Set a = Sheets(ActiveSheet.Name)
uf = a.Range(«A» & Rows.Count).End(xlUp).Row
‘path1 = ActiveWorkbook.Path & «324 PruebaHyper»
path1 = CreateObject(«shell.application»).browseforfolder(0, «Seleccione Carpeta», 0).Items.Item.Path
 If path1 = «» Then
 MsgBox «No ha seleccionado directorio carpeta Excel, seleccione directorio .», , «AVISO»
 Exit Sub
 End If
NunFich = 0
num = 0
For x = 1 To 10
cadbus = x
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set carpeta = fso.getfolder(path1)
Set ficheros = carpeta.Files
For Each ficheros In ficheros
b = ficheros.Name
nomold = path1 & «» & b
cadbusnew = » » & cadbus & » «
esp1 = InStr(b, cadbusnew)

If esp1 > 0 Then
esp2 = InStr(esp1 + 1, b, » «)
num = Mid(b, esp1 + 1, esp2 – 1 – esp1)
pp = Left(b, esp1 – 1)
sp = Mid(b, esp2 + 1)
nomnew = path1 & «» & num & » » & pp & » » & sp
Name nomold As nomnew
NunFich = NunFich + 1
End If
Next ficheros
Next x
Set carpeta = Nothing
Set ficheros = Nothing
MsgBox («Se encontraron » & NunFich & » ficheros en la carpteta seleccionada»), vbInformation, «AVISO»
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends