Como truncar o cortar nombre archivo a cantidad de carateres especificos





Seguidamente se mostrará como truncar o acortar el nombre de un archivo a una cantidad de caracteres determinada, seguramente cuando se trabaja con archivo y se guarda el fichero, el nombre es determinado por variables, muchas veces la cantidad de caracteres de las variables es excesiva y el nombre del archivo queda muy largo en forma innecesaria, en esos casos es posible que se quisiera estandarizar la longitud de los nombres de los archivos, para ello es útil la macro que se presenta en este post, ya que se trucará o acortará el nombre del fichero a una cantidad de caracteres definidas por el usuario.

Es posible que sea útil alguno de los siguientes posts que tratan sobre macros que permiten trabajar con archivos.

Macro que crea y borra archivos
Macro que abre explorador de archivos de Windows
Macro que crea un listado de archivos y subcarpetas de un directorio
Macro para buscar archivo en un directorio si no existe abre explorador de archivos
Macro que determina el nombre de un archivo
Macro para enviar mail mediante outlook adjuntando archivo en pdf que previamente creo
Macro de Excel que comprime archivos con extensión Zip
Macro para copiar carpetas y archivos
Macro conecta Excel con Word crea archivo de Word e inserta datos
Macro que autoelimina archivo previo autocopia el fichero
Macro copia hoja actual y guarda como con explorador de archivos
Macro hace copia de la hoja activa y la guarda como

Antes de seguir 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.

  

En este ejemplo de macro que se denomina como truncar o cortar nombre de archivo a una cantidad de caracteres específicos, en primer lugar antes de guardar el archivo se determinará el nombre, que es obtenido de la celda C2 y A1; para ellos se debe tener presente lo dicho en como guardar un archivo con una fecha como nombre sobre los caracteres no admitidos en el nombre de un archivo; es por ello que se reemplazan caracteres por caracteres válidos, con los siguientes códigos:

nom = Cells(2, "C") & Cells(1, "A")
nom = Replace(nom, "/", "")
nom = Replace(nom, ":", "")
nom = Replace(nom, ".", vbNullString)

Posteriormente se obtiene el nombre del archivo, que puede ser mayor a 60 caracteres que es lo que en el ejemplo se determina como máximo de caracteres para el nombre del fichero que se intenta guardar, para determinarlo se establece la cantidad de caracteres del nombre que se intenta dar en caso de ser mayor a 60 se extraen los primeros 60 caracteres truncando o acortando el nombre del archivo a la cantidad de 60 caracteres, eso se hace con el siguiente código:

If Len(nom) > 60 Then nom = Mid(nom, 1, 60)

Posterior a ello, ya teniendo el nombre del archivo con un máximo de caracteres de 60, se procede a guardar el archivo:

ActiveWorkbook.SaveAs Filename:=myfile, FileFormat:=xlOpenXMLWorkbook

Desde el final de post descarga el ejemplo como truncar o acortar el nombre del archivo a una cantidad de caracteres determinados, es código es libre y el archivo no contiene restricción alguna.

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 Formulario que solicita passwordbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mail, como copiar o exportar tabls de Excel a Word y muchos ejemplos más.








Código que se inserta en un módulo




Sub GuardarArchivoFecha()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
nom = Cells(2, "C") & Cells(1, "A")
nom = Replace(nom, "/", "")
nom = Replace(nom, ":", "")
nom = Replace(nom, ".", vbNullString)
If Len(nom) > 60 Then nom = Mid(nom, 1, 60)
myfile = ActiveWorkbook.Path & "\" & nom
Sheets("Hoja1").Copy
ActiveWorkbook.SaveAs Filename:=myfile, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close False
MsgBox ("El archivo se guardo en " & myfile & " con el nombre " & nom), vbInformation, "AVISO"
Application.DisplayAlerts = True
Application.ScreenUpdating = 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